mirror of
https://github.com/typst/typst
synced 2025-07-28 06:47:53 +08:00
Print elements
This commit is contained in:
parent
34b1be9151
commit
53d8d3f998
@ -4,12 +4,13 @@ mod collect;
|
|||||||
mod finalize;
|
mod finalize;
|
||||||
mod run;
|
mod run;
|
||||||
|
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::num::NonZeroUsize;
|
use std::num::NonZeroUsize;
|
||||||
|
|
||||||
use comemo::{Tracked, TrackedMut};
|
use comemo::{Tracked, TrackedMut};
|
||||||
use typst_library::diag::SourceResult;
|
use typst_library::diag::SourceResult;
|
||||||
use typst_library::engine::{Engine, Route, Sink, Traced};
|
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::{
|
use typst_library::introspection::{
|
||||||
Introspector, IntrospectorBuilder, Locator, ManualPageCounter, SplitLocator, TagElem,
|
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 pages = layout_pages(&mut engine, &mut children, &mut locator, styles)?;
|
||||||
let introspector = introspect_pages(&pages);
|
let introspector = introspect_pages(&pages);
|
||||||
|
|
||||||
|
let mut kinds = HashMap::<Element, usize>::new();
|
||||||
|
for elem in introspector.all() {
|
||||||
|
*kinds.entry(elem.elem()).or_default() += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut kinds = kinds.into_iter().collect::<Vec<_>>();
|
||||||
|
kinds.sort_by_key(|&(_, c)| std::cmp::Reverse(c));
|
||||||
|
println!("============");
|
||||||
|
for (elem, count) in kinds {
|
||||||
|
println!("{}: {count}", elem.name());
|
||||||
|
}
|
||||||
|
|
||||||
Ok(PagedDocument { pages, info, introspector })
|
Ok(PagedDocument { pages, info, introspector })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user