From 59568208ff88e78347dd317f4cdc7bf740ca2171 Mon Sep 17 00:00:00 2001 From: Dylan DPC Date: Tue, 24 Mar 2020 23:52:24 +0100 Subject: Revert "Support anchors in SUMMARY (#1173)" (#1175) This reverts commit 2baed040c2c6c8c02808a88633f50a0585958351. --- src/book/book.rs | 13 +++-------- src/book/summary.rs | 64 +++++++++-------------------------------------------- 2 files changed, 14 insertions(+), 63 deletions(-) (limited to 'src/book') diff --git a/src/book/book.rs b/src/book/book.rs index 1a7ba447..6a31c9e8 100644 --- a/src/book/book.rs +++ b/src/book/book.rs @@ -153,8 +153,6 @@ pub struct Chapter { pub sub_items: Vec, /// The chapter's location, relative to the `SUMMARY.md` file. pub path: PathBuf, - /// An optional anchor in the original link. - pub anchor: Option, /// An ordered list of the names of each chapter above this one, in the hierarchy. pub parent_names: Vec, } @@ -245,7 +243,6 @@ fn load_chapter>( let mut sub_item_parents = parent_names.clone(); let mut ch = Chapter::new(&link.name, content, stripped, parent_names); ch.number = link.number.clone(); - ch.anchor = link.anchor.clone(); sub_item_parents.push(link.name.clone()); let sub_items = link @@ -323,7 +320,7 @@ And here is some \ .write_all(DUMMY_SRC.as_bytes()) .unwrap(); - let link = Link::new("Chapter 1", chapter_path, None); + let link = Link::new("Chapter 1", chapter_path); (link, temp) } @@ -339,7 +336,7 @@ And here is some \ .write_all(b"Hello World!") .unwrap(); - let mut second = Link::new("Nested Chapter 1", &second_path, None); + let mut second = Link::new("Nested Chapter 1", &second_path); second.number = Some(SectionNumber(vec![1, 2])); root.nested_items.push(second.clone().into()); @@ -365,7 +362,7 @@ And here is some \ #[test] fn cant_load_a_nonexistent_chapter() { - let link = Link::new("Chapter 1", "/foo/bar/baz.md", None); + let link = Link::new("Chapter 1", "/foo/bar/baz.md"); let got = load_chapter(&link, "", Vec::new()); assert!(got.is_err()); @@ -382,7 +379,6 @@ And here is some \ path: PathBuf::from("second.md"), parent_names: vec![String::from("Chapter 1")], sub_items: Vec::new(), - anchor: None, }; let should_be = BookItem::Chapter(Chapter { name: String::from("Chapter 1"), @@ -395,7 +391,6 @@ And here is some \ BookItem::Separator, BookItem::Chapter(nested.clone()), ], - anchor: None, }); let got = load_summary_item(&SummaryItem::Link(root), temp.path(), Vec::new()).unwrap(); @@ -470,7 +465,6 @@ And here is some \ Vec::new(), )), ], - anchor: None, }), BookItem::Separator, ], @@ -523,7 +517,6 @@ And here is some \ Vec::new(), )), ], - anchor: None, }), BookItem::Separator, ], diff --git a/src/book/summary.rs b/src/book/summary.rs index 253de5f7..1e130537 100644 --- a/src/book/summary.rs +++ b/src/book/summary.rs @@ -72,8 +72,6 @@ pub struct Link { /// The location of the chapter's source file, taking the book's `src` /// directory as the root. pub location: PathBuf, - /// An optional anchor in the original link. - pub anchor: Option, /// The section number, if this chapter is in the numbered section. pub number: Option, /// Any nested items this chapter may contain. @@ -82,15 +80,10 @@ pub struct Link { impl Link { /// Create a new link with no nested items. - pub fn new, P: AsRef>( - name: S, - location: P, - anchor: Option, - ) -> Link { + pub fn new, P: AsRef>(name: S, location: P) -> Link { Link { name: name.into(), location: location.as_ref().to_path_buf(), - anchor, number: None, nested_items: Vec::new(), } @@ -102,7 +95,6 @@ impl Default for Link { Link { name: String::new(), location: PathBuf::new(), - anchor: None, number: None, nested_items: Vec::new(), } @@ -284,18 +276,15 @@ impl<'a> SummaryParser<'a> { let link_content = collect_events!(self.stream, end Tag::Link(..)); let name = stringify_events(link_content); - let mut split = href.splitn(2, '#'); - let (href, anchor) = (split.next(), split.next()); - - match href { - Some(href) if !href.is_empty() => Ok(Link { + if href.is_empty() { + Err(self.parse_error("You can't have an empty link.")) + } else { + Ok(Link { name, location: PathBuf::from(href.to_string()), - anchor: anchor.map(String::from), number: None, nested_items: Vec::new(), - }), - _ => Err(self.parse_error("You can't have an empty link.")), + }) } } @@ -687,12 +676,10 @@ mod tests { SummaryItem::Link(Link { name: String::from("First"), location: PathBuf::from("./first.md"), - anchor: None, number: Some(SectionNumber(vec![1])), nested_items: vec![SummaryItem::Link(Link { name: String::from("Nested"), location: PathBuf::from("./nested.md"), - anchor: None, number: Some(SectionNumber(vec![1, 1])), nested_items: Vec::new(), })], @@ -700,7 +687,6 @@ mod tests { SummaryItem::Link(Link { name: String::from("Second"), location: PathBuf::from("./second.md"), - anchor: None, number: Some(SectionNumber(vec![2])), nested_items: Vec::new(), }), @@ -722,14 +708,12 @@ mod tests { SummaryItem::Link(Link { name: String::from("First"), location: PathBuf::from("./first.md"), - anchor: None, number: Some(SectionNumber(vec![1])), nested_items: Vec::new(), }), SummaryItem::Link(Link { name: String::from("Second"), location: PathBuf::from("./second.md"), - anchor: None, number: Some(SectionNumber(vec![2])), nested_items: Vec::new(), }), @@ -743,26 +727,6 @@ mod tests { assert_eq!(got, should_be); } - #[test] - fn parse_anchors() { - let src = "- [Link to anchor](./page.md#Foo)"; - - let should_be = vec![SummaryItem::Link(Link { - name: String::from("Link to anchor"), - location: PathBuf::from("./page.md"), - anchor: Some("Foo".to_string()), - number: Some(SectionNumber(vec![1])), - nested_items: Vec::new(), - })]; - - let mut parser = SummaryParser::new(src); - let _ = parser.stream.next(); - - let got = parser.parse_numbered().unwrap(); - - assert_eq!(got, should_be); - } - /// This test ensures the book will continue to pass because it breaks the /// `SUMMARY.md` up using level 2 headers ([example]). /// @@ -774,14 +738,12 @@ mod tests { SummaryItem::Link(Link { name: String::from("First"), location: PathBuf::from("./first.md"), - anchor: None, number: Some(SectionNumber(vec![1])), nested_items: Vec::new(), }), SummaryItem::Link(Link { name: String::from("Second"), location: PathBuf::from("./second.md"), - anchor: None, number: Some(SectionNumber(vec![2])), nested_items: Vec::new(), }), @@ -797,13 +759,12 @@ mod tests { #[test] fn an_empty_link_location_is_an_error() { - for src in &["- [Empty]()\n", "- [Empty](#Foo)\n"] { - let mut parser = SummaryParser::new(src); - parser.stream.next(); + let src = "- [Empty]()\n"; + let mut parser = SummaryParser::new(src); + parser.stream.next(); - let got = parser.parse_numbered(); - assert!(got.is_err()); - } + let got = parser.parse_numbered(); + assert!(got.is_err()); } /// Regression test for https://github.com/rust-lang/mdBook/issues/779 @@ -818,7 +779,6 @@ mod tests { location: PathBuf::from("./first.md"), number: Some(SectionNumber(vec![1])), nested_items: Vec::new(), - anchor: None, }), SummaryItem::Separator, SummaryItem::Link(Link { @@ -826,13 +786,11 @@ mod tests { location: PathBuf::from("./second.md"), number: Some(SectionNumber(vec![2])), nested_items: Vec::new(), - anchor: None, }), SummaryItem::Separator, SummaryItem::Link(Link { name: String::from("Third"), location: PathBuf::from("./third.md"), - anchor: None, number: Some(SectionNumber(vec![3])), nested_items: Vec::new(), }), -- cgit v1.2.3