Skip to content

Commit 33d3943

Browse files
authored
Merge pull request rust-lang#1293 from Evian-Zhang/master
allow space in SUMMARY.md's link destination
2 parents 0102c2c + 93d286f commit 33d3943

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/book/summary.rs

+26
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ impl<'a> SummaryParser<'a> {
333333

334334
/// Finishes parsing a link once the `Event::Start(Tag::Link(..))` has been opened.
335335
fn parse_link(&mut self, href: String) -> Link {
336+
let href = href.replace("%20", " ");
336337
let link_content = collect_events!(self.stream, end Tag::Link(..));
337338
let name = stringify_events(link_content);
338339

@@ -947,4 +948,29 @@ mod tests {
947948

948949
assert_eq!(got, should_be);
949950
}
951+
952+
#[test]
953+
fn allow_space_in_link_destination() {
954+
let src = "- [test1](./test%20link1.md)\n- [test2](<./test link2.md>)";
955+
let should_be = vec![
956+
SummaryItem::Link(Link {
957+
name: String::from("test1"),
958+
location: Some(PathBuf::from("./test link1.md")),
959+
number: Some(SectionNumber(vec![1])),
960+
nested_items: Vec::new(),
961+
}),
962+
SummaryItem::Link(Link {
963+
name: String::from("test2"),
964+
location: Some(PathBuf::from("./test link2.md")),
965+
number: Some(SectionNumber(vec![2])),
966+
nested_items: Vec::new(),
967+
}),
968+
];
969+
let mut parser = SummaryParser::new(src);
970+
let got = parser
971+
.parse_numbered(&mut 0, &mut SectionNumber::default())
972+
.unwrap();
973+
974+
assert_eq!(got, should_be);
975+
}
950976
}

0 commit comments

Comments
 (0)