summaryrefslogtreecommitdiff
path: root/library/src/meta
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/meta')
-rw-r--r--library/src/meta/document.rs6
-rw-r--r--library/src/meta/heading.rs23
-rw-r--r--library/src/meta/link.rs2
-rw-r--r--library/src/meta/outline.rs19
-rw-r--r--library/src/meta/reference.rs2
5 files changed, 19 insertions, 33 deletions
diff --git a/library/src/meta/document.rs b/library/src/meta/document.rs
index 8da3c731..ae29e7a8 100644
--- a/library/src/meta/document.rs
+++ b/library/src/meta/document.rs
@@ -39,7 +39,7 @@ impl LayoutRoot for DocumentNode {
let outer = styles;
let mut styles = outer;
if let Some(node) = child.to::<StyledNode>() {
- map = node.map();
+ map = node.styles();
styles = outer.chain(&map);
child = node.body();
}
@@ -48,8 +48,8 @@ impl LayoutRoot for DocumentNode {
let number = 1 + pages.len();
let fragment = page.layout(vt, number, styles)?;
pages.extend(fragment);
- } else if let Some(span) = child.span() {
- bail!(span, "unexpected document child");
+ } else {
+ bail!(child.span(), "unexpected document child");
}
}
diff --git a/library/src/meta/heading.rs b/library/src/meta/heading.rs
index 3a8d811c..8677aa55 100644
--- a/library/src/meta/heading.rs
+++ b/library/src/meta/heading.rs
@@ -79,13 +79,8 @@ pub struct HeadingNode {
}
impl Prepare for HeadingNode {
- fn prepare(
- &self,
- vt: &mut Vt,
- mut this: Content,
- styles: StyleChain,
- ) -> SourceResult<Content> {
- let my_id = vt.identify(&this);
+ fn prepare(&self, vt: &mut Vt, styles: StyleChain) -> SourceResult<Content> {
+ let my_id = vt.identify(self);
let mut counter = HeadingCounter::new();
for (node_id, node) in vt.locate(Selector::node::<HeadingNode>()) {
@@ -105,18 +100,18 @@ impl Prepare for HeadingNode {
numbers = numbering.apply(vt.world(), counter.advance(self))?;
}
- this.push_field("outlined", Value::Bool(self.outlined(styles)));
- this.push_field("numbers", numbers);
-
- let meta = Meta::Node(my_id, this.clone());
- Ok(this.styled(MetaNode::set_data(vec![meta])))
+ let mut node = self.clone().pack();
+ node.push_field("outlined", Value::Bool(self.outlined(styles)));
+ node.push_field("numbers", numbers);
+ let meta = Meta::Node(my_id, node.clone());
+ Ok(node.styled(MetaNode::set_data(vec![meta])))
}
}
impl Show for HeadingNode {
- fn show(&self, _: &mut Vt, this: &Content, _: StyleChain) -> SourceResult<Content> {
+ fn show(&self, _: &mut Vt, _: StyleChain) -> SourceResult<Content> {
let mut realized = self.body();
- let numbers = this.field("numbers").unwrap();
+ let numbers = self.0.field("numbers").unwrap();
if *numbers != Value::None {
realized = numbers.clone().display()
+ HNode::new(Em::new(0.3).into()).with_weak(true).pack()
diff --git a/library/src/meta/link.rs b/library/src/meta/link.rs
index 572c55b4..4aba3697 100644
--- a/library/src/meta/link.rs
+++ b/library/src/meta/link.rs
@@ -78,7 +78,7 @@ impl LinkNode {
}
impl Show for LinkNode {
- fn show(&self, _: &mut Vt, _: &Content, _: StyleChain) -> SourceResult<Content> {
+ fn show(&self, _: &mut Vt, _: StyleChain) -> SourceResult<Content> {
Ok(self.body())
}
}
diff --git a/library/src/meta/outline.rs b/library/src/meta/outline.rs
index 9e5614aa..d66a573d 100644
--- a/library/src/meta/outline.rs
+++ b/library/src/meta/outline.rs
@@ -70,12 +70,7 @@ pub struct OutlineNode {
}
impl Prepare for OutlineNode {
- fn prepare(
- &self,
- vt: &mut Vt,
- mut this: Content,
- _: StyleChain,
- ) -> SourceResult<Content> {
+ fn prepare(&self, vt: &mut Vt, _: StyleChain) -> SourceResult<Content> {
let headings = vt
.locate(Selector::node::<HeadingNode>())
.into_iter()
@@ -84,18 +79,14 @@ impl Prepare for OutlineNode {
.map(|node| Value::Content(node.clone()))
.collect();
- this.push_field("headings", Value::Array(Array::from_vec(headings)));
- Ok(this)
+ let mut node = self.clone().pack();
+ node.push_field("headings", Value::Array(Array::from_vec(headings)));
+ Ok(node)
}
}
impl Show for OutlineNode {
- fn show(
- &self,
- vt: &mut Vt,
- _: &Content,
- styles: StyleChain,
- ) -> SourceResult<Content> {
+ fn show(&self, vt: &mut Vt, styles: StyleChain) -> SourceResult<Content> {
let mut seq = vec![ParbreakNode::new().pack()];
if let Some(title) = self.title(styles) {
let title = title.clone().unwrap_or_else(|| {
diff --git a/library/src/meta/reference.rs b/library/src/meta/reference.rs
index 20354556..bfc31785 100644
--- a/library/src/meta/reference.rs
+++ b/library/src/meta/reference.rs
@@ -25,7 +25,7 @@ pub struct RefNode {
}
impl Show for RefNode {
- fn show(&self, _: &mut Vt, _: &Content, _: StyleChain) -> SourceResult<Content> {
+ fn show(&self, _: &mut Vt, _: StyleChain) -> SourceResult<Content> {
Ok(TextNode::packed(eco_format!("@{}", self.target())))
}
}