Skip to main content

typst_library/model/
mod.rs

1//! Structuring elements that define the document model.
2
3mod asset;
4mod bibliography;
5mod cite;
6mod divider;
7mod document;
8mod emph;
9#[path = "enum.rs"]
10mod enum_;
11mod figure;
12mod footnote;
13mod heading;
14mod link;
15mod list;
16#[path = "numbering.rs"]
17mod numbering_;
18mod outline;
19mod par;
20mod quote;
21mod reference;
22mod strong;
23mod table;
24mod terms;
25mod title;
26
27pub use self::asset::*;
28pub use self::bibliography::*;
29pub use self::cite::*;
30pub use self::divider::*;
31pub use self::document::*;
32pub use self::emph::*;
33pub use self::enum_::*;
34pub use self::figure::*;
35pub use self::footnote::*;
36pub use self::heading::*;
37pub use self::link::*;
38pub use self::list::*;
39pub use self::numbering_::*;
40pub use self::outline::*;
41pub use self::par::*;
42pub use self::quote::*;
43pub use self::reference::*;
44pub use self::strong::*;
45pub use self::table::*;
46pub use self::terms::*;
47pub use self::title::*;
48
49use crate::foundations::Scope;
50use crate::{Feature, Features};
51
52/// Hook up all `model` definitions.
53pub fn define(global: &mut Scope, features: &Features) {
54    global.start_category(crate::Category::Model);
55    global.define_elem::<DocumentElem>();
56    if features.is_enabled(Feature::Bundle) {
57        global.define_elem::<AssetElem>();
58    }
59    global.define_elem::<ParElem>();
60    global.define_elem::<ParbreakElem>();
61    global.define_elem::<StrongElem>();
62    global.define_elem::<EmphElem>();
63    global.define_elem::<ListElem>();
64    global.define_elem::<EnumElem>();
65    global.define_elem::<TermsElem>();
66    global.define_elem::<LinkElem>();
67    global.define_elem::<TitleElem>();
68    global.define_elem::<HeadingElem>();
69    global.define_elem::<DividerElem>();
70    global.define_elem::<FigureElem>();
71    global.define_elem::<QuoteElem>();
72    global.define_elem::<FootnoteElem>();
73    global.define_elem::<OutlineElem>();
74    global.define_elem::<RefElem>();
75    global.define_elem::<CiteElem>();
76    global.define_elem::<BibliographyElem>();
77    global.define_elem::<TableElem>();
78    global.define_func::<numbering>();
79    global.reset_category();
80}