Skip to content

Commit 88684d8

Browse files
authored
Merge pull request #1167 from dalance/fix_summary_comment
Fix SUMMARY's parse_numbered with comment
2 parents 44c3213 + b82562f commit 88684d8

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/book/summary.rs

+31
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,10 @@ impl<'a> SummaryParser<'a> {
377377
items.push(item);
378378
}
379379
Some(Event::Start(Tag::List(..))) => {
380+
// Skip this tag after comment bacause it is not nested.
381+
if items.is_empty() {
382+
continue;
383+
}
380384
// recurse to parse the nested list
381385
let (_, last_item) = get_last_link(&mut items)?;
382386
let last_item_number = last_item
@@ -696,6 +700,33 @@ mod tests {
696700
assert_eq!(got, should_be);
697701
}
698702

703+
#[test]
704+
fn parse_numbered_chapters_separated_by_comment() {
705+
let src = "- [First](./first.md)\n<!-- this is a comment -->\n- [Second](./second.md)";
706+
707+
let should_be = vec![
708+
SummaryItem::Link(Link {
709+
name: String::from("First"),
710+
location: PathBuf::from("./first.md"),
711+
number: Some(SectionNumber(vec![1])),
712+
nested_items: Vec::new(),
713+
}),
714+
SummaryItem::Link(Link {
715+
name: String::from("Second"),
716+
location: PathBuf::from("./second.md"),
717+
number: Some(SectionNumber(vec![2])),
718+
nested_items: Vec::new(),
719+
}),
720+
];
721+
722+
let mut parser = SummaryParser::new(src);
723+
let _ = parser.stream.next();
724+
725+
let got = parser.parse_numbered().unwrap();
726+
727+
assert_eq!(got, should_be);
728+
}
729+
699730
/// This test ensures the book will continue to pass because it breaks the
700731
/// `SUMMARY.md` up using level 2 headers ([example]).
701732
///

0 commit comments

Comments
 (0)