diff options
Diffstat (limited to 'library/src/meta')
| -rw-r--r-- | library/src/meta/document.rs | 6 | ||||
| -rw-r--r-- | library/src/meta/heading.rs | 23 | ||||
| -rw-r--r-- | library/src/meta/link.rs | 2 | ||||
| -rw-r--r-- | library/src/meta/outline.rs | 19 | ||||
| -rw-r--r-- | library/src/meta/reference.rs | 2 |
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()))) } } |
