From 53d8d3f998885466b363459863101bb63a6ff539 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 19 Jul 2025 10:24:05 +0200 Subject: [PATCH] Print elements --- crates/typst-layout/src/pages/mod.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/typst-layout/src/pages/mod.rs b/crates/typst-layout/src/pages/mod.rs index ec0dc2c05..e9b780403 100644 --- a/crates/typst-layout/src/pages/mod.rs +++ b/crates/typst-layout/src/pages/mod.rs @@ -4,12 +4,13 @@ mod collect; mod finalize; mod run; +use std::collections::HashMap; use std::num::NonZeroUsize; use comemo::{Tracked, TrackedMut}; use typst_library::diag::SourceResult; use typst_library::engine::{Engine, Route, Sink, Traced}; -use typst_library::foundations::{Content, StyleChain}; +use typst_library::foundations::{Content, Element, StyleChain}; use typst_library::introspection::{ Introspector, IntrospectorBuilder, Locator, ManualPageCounter, SplitLocator, TagElem, }; @@ -88,6 +89,18 @@ fn layout_document_impl( let pages = layout_pages(&mut engine, &mut children, &mut locator, styles)?; let introspector = introspect_pages(&pages); + let mut kinds = HashMap::::new(); + for elem in introspector.all() { + *kinds.entry(elem.elem()).or_default() += 1; + } + + let mut kinds = kinds.into_iter().collect::>(); + kinds.sort_by_key(|&(_, c)| std::cmp::Reverse(c)); + println!("============"); + for (elem, count) in kinds { + println!("{}: {count}", elem.name()); + } + Ok(PagedDocument { pages, info, introspector }) }