summaryrefslogtreecommitdiff
path: root/library/src/layout
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/layout')
-rw-r--r--library/src/layout/list.rs4
-rw-r--r--library/src/layout/mod.rs35
-rw-r--r--library/src/layout/terms.rs4
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