Merge pull request #1291 from ericonr/fix-break

summary: turn SoftBreak events into spaces.
This commit is contained in:
Eric Huss 2020-07-30 20:05:07 -07:00 committed by GitHub
commit f5ae7c4f13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -569,6 +569,7 @@ fn stringify_events(events: Vec<Event<'_>>) -> String {
.into_iter()
.filter_map(|t| match t {
Event::Text(text) | Event::Code(text) => Some(text.into_string()),
Event::SoftBreak => Some(String::from(" ")),
_ => None,
})
.collect()
@ -926,4 +927,24 @@ mod tests {
assert_eq!(got, should_be);
}
/// Regression test for https://github.com/rust-lang/mdBook/issues/1218
/// Ensure chapter names spread across multiple lines have spaces between all the words.
#[test]
fn add_space_for_multi_line_chapter_names() {
let src = "- [Chapter\ntitle](./chapter.md)";
let should_be = vec![SummaryItem::Link(Link {
name: String::from("Chapter title"),
location: Some(PathBuf::from("./chapter.md")),
number: Some(SectionNumber(vec![1])),
nested_items: Vec::new(),
})];
let mut parser = SummaryParser::new(src);
let got = parser
.parse_numbered(&mut 0, &mut SectionNumber::default())
.unwrap();
assert_eq!(got, should_be);
}
}