From c58a8fbd1dfedf571a47a3c8504067f6365c6cd4 Mon Sep 17 00:00:00 2001 From: Pg Biel <9021226+PgBiel@users.noreply.github.com> Date: Mon, 12 Jun 2023 06:50:59 -0300 Subject: [PATCH] Add `outline.entry` (#1423) --- library/src/meta/outline.rs | 196 ++++++++++++++++++++++++------- tests/ref/meta/outline-entry.png | Bin 0 -> 78782 bytes tests/typ/meta/outline-entry.typ | 60 ++++++++++ 3 files changed, 214 insertions(+), 42 deletions(-) create mode 100644 tests/ref/meta/outline-entry.png create mode 100644 tests/typ/meta/outline-entry.typ diff --git a/library/src/meta/outline.rs b/library/src/meta/outline.rs index d1bd06768..cc657ffba 100644 --- a/library/src/meta/outline.rs +++ b/library/src/meta/outline.rs @@ -47,10 +47,20 @@ use crate::text::{LinebreakElem, SpaceElem, TextElem}; /// ) /// ``` /// +/// ## Styling the outline { #styling-the-outline } +/// The outline element has several options for customization, such as its +/// `title` and `indent` parameters. If desired, however, it is possible to +/// have more control over the outline's look and style through the +/// [`outline.entry`]($func/outline.entry) element. +/// /// Display: Outline /// Category: meta /// Keywords: Table of Contents #[element(Show, Finalize, LocalName)] +#[scope( + scope.define("entry", OutlineEntry::func()); + scope +)] pub struct OutlineElem { /// The title of the outline. /// @@ -199,64 +209,29 @@ impl Show for OutlineElem { let elems = vt.introspector.query(&self.target(styles).0); for elem in &elems { - let Some(outlinable) = elem.with::() else { - bail!(self.span(), "cannot outline {}", elem.func().name()); + let Some(entry) = OutlineEntry::from_outlinable(vt, self.span(), elem.clone().into_inner(), self.fill(styles))? else { + continue; }; - if depth < outlinable.level() { + let level = entry.level(); + if depth < level { continue; } - let Some(outline) = outlinable.outline(vt)? else { - continue; - }; - - let location = elem.location().unwrap(); - // Deals with the ancestors of the current element. // This is only applicable for elements with a hierarchy/level. while ancestors .last() .and_then(|ancestor| ancestor.with::()) - .map_or(false, |last| last.level() >= outlinable.level()) + .map_or(false, |last| last.level() >= level) { ancestors.pop(); } OutlineIndent::apply(&indent, vt, &ancestors, &mut seq, self.span())?; - // Add the outline of the element. - seq.push(outline.linked(Destination::Location(location))); - - let page_numbering = vt - .introspector - .page_numbering(location) - .cast::>() - .unwrap() - .unwrap_or_else(|| { - Numbering::Pattern(NumberingPattern::from_str("1").unwrap()) - }); - - // Add filler symbols between the section name and page number. - if let Some(filler) = self.fill(styles) { - seq.push(SpaceElem::new().pack()); - seq.push( - BoxElem::new() - .with_body(Some(filler.clone())) - .with_width(Fr::one().into()) - .pack(), - ); - seq.push(SpaceElem::new().pack()); - } else { - seq.push(HElem::new(Fr::one().into()).pack()); - } - - // Add the page number and linebreak. - let page = Counter::new(CounterKey::Page) - .at(vt, location)? - .display(vt, &page_numbering)?; - - seq.push(page.linked(Destination::Location(location))); + // Add the overridable outline entry, followed by a line break. + seq.push(entry.pack()); seq.push(LinebreakElem::new().pack()); ancestors.push(elem); @@ -399,3 +374,140 @@ cast! { v: Rel => Self(HElem::new(Spacing::Rel(v)).pack()), v: Content => Self(v), } + +/// Represents each entry line in an outline, including the reference to the +/// outlined element, its page number, and the filler content between both. +/// +/// This element is intended for use with show rules to control the appearance +/// of outlines. +/// +/// ## Example { #example } +/// The example below shows how to style entries for top-level sections to make +/// them stand out. +/// +/// ```example +/// #set heading(numbering: "1.") +/// +/// #show outline.entry.where( +/// level: 1 +/// ): it => { +/// v(12pt, weak: true) +/// strong(it) +/// } +/// +/// #outline(indent: auto) +/// +/// = Introduction +/// = Background +/// == History +/// == State of the Art +/// = Analysis +/// == Setup +/// ``` +/// +/// To completely customize an entry's line, you can also build it from +/// scratch by accessing the `level`, `element`, `outline`, and `fill` +/// fields on the entry. +/// +/// Display: Outline Entry +/// Category: meta +#[element(Show)] +pub struct OutlineEntry { + /// The nesting level of this outline entry. Starts at `{1}` for top-level + /// entries. + #[required] + pub level: NonZeroUsize, + + /// The element this entry refers to. Its location will be available + /// through the [`location`]($type/content.location) method on content + /// and can be [linked]($func/link) to. + #[required] + pub element: Content, + + /// The content which is displayed in place of the referred element at its + /// entry in the outline. For a heading, this would be its number followed + /// by the heading's title, for example. + #[required] + pub body: Content, + + /// The content used to fill the space between the element's outline and + /// its page number, as defined by the outline element this entry is + /// located in. When `{none}`, empty space is inserted in that gap instead. + /// + /// Note that, when using show rules to override outline entries, it is + /// recommended to wrap the filling content in a [`box`]($func/box) with + /// fractional width. For example, `{box(width: 1fr, repeat[-])}` would show + /// precisely as many `-` characters as necessary to fill a particular gap. + #[required] + pub fill: Option, +} + +impl OutlineEntry { + /// Generates an OutlineEntry from the given element, if possible + /// (errors if the element does not implement Outlinable). + /// If the element cannot be outlined (e.g. heading with 'outlined: false'), + /// does not generate an entry instance (returns Ok(None)). + fn from_outlinable( + vt: &mut Vt, + span: Span, + elem: Content, + fill: Option, + ) -> SourceResult> { + let Some(outlinable) = elem.with::() else { + bail!(span, "cannot outline {}", elem.func().name()); + }; + + let Some(body) = outlinable.outline(vt)? else { + return Ok(None); + }; + + Ok(Some(Self::new(outlinable.level(), elem, body, fill))) + } +} + +impl Show for OutlineEntry { + fn show(&self, vt: &mut Vt, _: StyleChain) -> SourceResult { + let mut seq = vec![]; + let elem = self.element(); + + // In case a user constructs an outline entry with an arbitrary element. + let Some(location) = elem.location() else { + bail!(self.span(), "cannot outline {}", elem.func().name()) + }; + + // The body text remains overridable. + seq.push(self.body().linked(Destination::Location(location))); + + // Add filler symbols between the section name and page number. + if let Some(filler) = self.fill() { + seq.push(SpaceElem::new().pack()); + seq.push( + BoxElem::new() + .with_body(Some(filler)) + .with_width(Fr::one().into()) + .pack(), + ); + seq.push(SpaceElem::new().pack()); + } else { + seq.push(HElem::new(Fr::one().into()).pack()); + } + + let page_numbering = vt + .introspector + .page_numbering(location) + .cast::>() + .unwrap() + .unwrap_or_else(|| { + Numbering::Pattern(NumberingPattern::from_str("1").unwrap()) + }); + + let page = Counter::new(CounterKey::Page) + .at(vt, location)? + .display(vt, &page_numbering)?; + + // Add the page number. + seq.push(page.linked(Destination::Location(location))); + + Ok(Content::sequence(seq)) + } +} diff --git a/tests/ref/meta/outline-entry.png b/tests/ref/meta/outline-entry.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2773974b07439bae0dc70b3ca5e4fe403977c0 GIT binary patch literal 78782 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

k>%Y!5- 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 L9mb^;r|AC$)^AI9 literal 0 HcmV?d00001 diff --git a/tests/typ/meta/outline-entry.typ b/tests/typ/meta/outline-entry.typ new file mode 100644 index 000000000..ac78ec2aa --- /dev/null +++ b/tests/typ/meta/outline-entry.typ @@ -0,0 +1,60 @@ +// Tests outline entry. + +--- +#set page(width: 150pt) +#set heading(numbering: "1.") + +#show outline.entry.where( + level: 1 +): it => { + v(12pt, weak: true) + strong(it) +} + +#outline(indent: auto) + +#set text(8pt) +#show heading: set block(spacing: 0.65em) + += Introduction += Background +== History +== State of the Art += Analysis +== Setup + +--- +#set page(width: 150pt, numbering: "I", margin: (bottom: 20pt)) +#set heading(numbering: "1.") +#show outline.entry.where(level: 1): it => [ + #let loc = it.element.location() + #let num = numbering(loc.page-numbering(), ..counter(page).at(loc)) + #emph(link(loc, it.body)) + #text(luma(100), box(width: 1fr, repeat[#it.fill.body;ยท])) + #link(loc, num) +] + +#counter(page).update(3) +#outline(indent: auto, fill: repeat[--]) + +#set text(8pt) +#show heading: set block(spacing: 0.65em) + += Top heading +== Not top heading +=== Lower heading +=== Lower too +== Also not top + +#pagebreak() +#set page(numbering: "1") + += Another top heading +== Middle heading +=== Lower heading + +--- +// Error: 2-23 cannot outline cite +#outline(target: cite) +#cite("arrgh", "distress", [p. 22]) +#bibliography("/works.bib")