diff options
Diffstat (limited to 'library/src/layout')
| -rw-r--r-- | library/src/layout/list.rs | 4 | ||||
| -rw-r--r-- | library/src/layout/mod.rs | 35 | ||||
| -rw-r--r-- | library/src/layout/terms.rs | 4 |
3 files changed, 40 insertions, 3 deletions
diff --git a/library/src/layout/list.rs b/library/src/layout/list.rs index 75228d95..25783d84 100644 --- a/library/src/layout/list.rs +++ b/library/src/layout/list.rs @@ -37,6 +37,10 @@ use super::GridLayouter; /// Display: Bullet List /// Category: layout #[element(Layout)] +#[scope( + scope.define("item", ListItem::func()); + scope +)] pub struct ListElem { /// If this is `{false}`, the items are spaced apart with [list /// spacing]($func/list.spacing). If it is `{true}`, they use normal diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index 92e36b58..2d5b18c8 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -57,9 +57,38 @@ use crate::meta::DocumentElem; use crate::prelude::*; use crate::shared::BehavedBuilder; use crate::text::{LinebreakElem, SmartQuoteElem, SpaceElem, TextElem}; -use crate::visualize::PathElem; -use crate::visualize::PolygonElem; -use crate::visualize::{CircleElem, EllipseElem, ImageElem, RectElem, SquareElem}; +use crate::visualize::{ + CircleElem, EllipseElem, ImageElem, PathElem, PolygonElem, RectElem, SquareElem, +}; + +/// Hook up all layout definitions. +pub(super) fn define(global: &mut Scope) { + global.define("page", PageElem::func()); + global.define("pagebreak", PagebreakElem::func()); + global.define("v", VElem::func()); + global.define("par", ParElem::func()); + global.define("parbreak", ParbreakElem::func()); + global.define("h", HElem::func()); + global.define("box", BoxElem::func()); + global.define("block", BlockElem::func()); + global.define("list", ListElem::func()); + global.define("enum", EnumElem::func()); + global.define("terms", TermsElem::func()); + global.define("table", TableElem::func()); + global.define("stack", StackElem::func()); + global.define("grid", GridElem::func()); + global.define("columns", ColumnsElem::func()); + global.define("colbreak", ColbreakElem::func()); + global.define("place", PlaceElem::func()); + global.define("align", AlignElem::func()); + global.define("pad", PadElem::func()); + global.define("repeat", RepeatElem::func()); + global.define("move", MoveElem::func()); + global.define("scale", ScaleElem::func()); + global.define("rotate", RotateElem::func()); + global.define("hide", HideElem::func()); + global.define("measure", measure); +} /// Root-level layout. pub trait LayoutRoot { diff --git a/library/src/layout/terms.rs b/library/src/layout/terms.rs index b6919eec..073b6ee2 100644 --- a/library/src/layout/terms.rs +++ b/library/src/layout/terms.rs @@ -22,6 +22,10 @@ use crate::prelude::*; /// Display: Term List /// Category: layout #[element(Layout)] +#[scope( + scope.define("item", TermItem::func()); + scope +)] pub struct TermsElem { /// If this is `{false}`, the items are spaced apart with [term list /// spacing]($func/terms.spacing). If it is `{true}`, they use normal |
