diff options
| author | +merlan #flirora <uruwi@protonmail.com> | 2024-12-16 08:45:57 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-16 13:45:57 +0000 |
| commit | d3620df4c63b5856832b23b26eba71aecd9f543e (patch) | |
| tree | ed453720634c2da05186680e551e2cb6564eab07 /crates/typst-layout/src | |
| parent | 7f139517b9ba8cf4f51083d5387971571d1aa950 (diff) | |
Add reversed numbering (#5563)
Diffstat (limited to 'crates/typst-layout/src')
| -rw-r--r-- | crates/typst-layout/src/lists.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crates/typst-layout/src/lists.rs b/crates/typst-layout/src/lists.rs index 08c2a2f4..0d51a1e4 100644 --- a/crates/typst-layout/src/lists.rs +++ b/crates/typst-layout/src/lists.rs @@ -74,6 +74,7 @@ pub fn layout_enum( regions: Regions, ) -> SourceResult<Fragment> { let numbering = elem.numbering(styles); + let reversed = elem.reversed(styles); let indent = elem.indent(styles); let body_indent = elem.body_indent(styles); let gutter = elem.spacing(styles).unwrap_or_else(|| { @@ -86,7 +87,9 @@ pub fn layout_enum( let mut cells = vec![]; let mut locator = locator.split(); - let mut number = elem.start(styles); + let mut number = + elem.start(styles) + .unwrap_or_else(|| if reversed { elem.children.len() } else { 1 }); let mut parents = EnumElem::parents_in(styles); let full = elem.full(styles); @@ -127,7 +130,8 @@ pub fn layout_enum( item.body.clone().styled(EnumElem::set_parents(smallvec![number])), locator.next(&item.body.span()), )); - number = number.saturating_add(1); + number = + if reversed { number.saturating_sub(1) } else { number.saturating_add(1) }; } let grid = CellGrid::new( |
