diff --git a/src/model/content.rs b/src/model/content.rs index ae074b50e..7828a3cdd 100644 --- a/src/model/content.rs +++ b/src/model/content.rs @@ -413,6 +413,11 @@ impl<'a> Builder<'a> { self.interrupt(Interruption::List, styles, false)?; + if let Content::Item(_) = content { + self.list.accept(content, styles); + return Ok(()); + } + if self.par.accept(content, styles) { return Ok(()); } diff --git a/src/parse/parser.rs b/src/parse/parser.rs index 90b6e610d..f8ea96143 100644 --- a/src/parse/parser.rs +++ b/src/parse/parser.rs @@ -454,8 +454,8 @@ impl Marker { /// Wrap all children after the marker (excluding trailing trivia) in a node /// with the given `kind`. pub fn end(self, p: &mut Parser, kind: NodeKind) { - let until = p.trivia_start(); - let children = p.children.drain(self.0 .. until.0).collect(); + let until = p.trivia_start().0.max(self.0); + let children = p.children.drain(self.0 .. until).collect(); p.children .insert(self.0, InnerNode::with_children(kind, children).into()); } diff --git a/tests/ref/structure/enum.png b/tests/ref/structure/enum.png index 20bb08d4c..f58a6c853 100644 Binary files a/tests/ref/structure/enum.png and b/tests/ref/structure/enum.png differ diff --git a/tests/typ/structure/enum.typ b/tests/typ/structure/enum.typ index eb1d9a9df..4ff13ff40 100644 --- a/tests/typ/structure/enum.typ +++ b/tests/typ/structure/enum.typ @@ -5,14 +5,9 @@ --- 1. First. - 2. Second. + 2. Indented -1. Back to first. - ---- -2. Second -1. First - + Indented ++ Second --- // Test automatic numbering in summed content. @@ -35,6 +30,12 @@ + A + B +--- +// Mix of different lists +- List ++ Enum +/ Desc: List + --- // Test label closure. #enum(