From 1bf9f69579e525a35fd712b7f00f2f24eebc6387 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Tue, 14 Jan 2020 19:21:10 +0100 Subject: [PATCH 1/4] Prevent urls in headings --- src/librustdoc/html/markdown.rs | 8 ++++++-- src/test/rustdoc/remove-url-from-headings.rs | 12 ++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 src/test/rustdoc/remove-url-from-headings.rs diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index c5f88f9f7f421..b2f5c8e81ff7e 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -380,7 +380,11 @@ impl<'a, 'b, 'ids, I: Iterator>> Iterator for HeadingLinks<'a, } _ => {} } - self.buf.push_back(event); + match event { + Event::Start(Tag::Link(_, _, text)) => self.buf.push_back(Event::Text(text)), + Event::End(Tag::Link(..)) => {} + event => self.buf.push_back(event), + } } let id = self.id_map.derive(id); @@ -395,7 +399,7 @@ impl<'a, 'b, 'ids, I: Iterator>> Iterator for HeadingLinks<'a, let start_tags = format!( "\ - ", + ", id = id, level = level ); diff --git a/src/test/rustdoc/remove-url-from-headings.rs b/src/test/rustdoc/remove-url-from-headings.rs new file mode 100644 index 0000000000000..7fbcdbafa7486 --- /dev/null +++ b/src/test/rustdoc/remove-url-from-headings.rs @@ -0,0 +1,12 @@ +#![crate_name = "foo"] + +// @has foo/fn.foo.html +// !@has - '//a[@href="http://a.a"]' +// @has - '//a[@href="#implementing-stuff-somewhere"]' 'Implementing stuff somewhere' + +/// fooo +/// +/// # Implementing [stuff](http://a.a) somewhere +/// +/// hello +pub fn foo() {} From 0e6a941820dcb39f5abab156e423cf3e28970c9f Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 16 Jan 2020 14:19:37 +0100 Subject: [PATCH 2/4] Don't keep link title either, text is generated outside of the link tag --- src/librustdoc/html/markdown.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs index b2f5c8e81ff7e..c87964af0200c 100644 --- a/src/librustdoc/html/markdown.rs +++ b/src/librustdoc/html/markdown.rs @@ -381,8 +381,7 @@ impl<'a, 'b, 'ids, I: Iterator>> Iterator for HeadingLinks<'a, _ => {} } match event { - Event::Start(Tag::Link(_, _, text)) => self.buf.push_back(Event::Text(text)), - Event::End(Tag::Link(..)) => {} + Event::Start(Tag::Link(_, _, _)) | Event::End(Tag::Link(..)) => {} event => self.buf.push_back(event), } } From 5022dd3b854792dd72d396e1586aa5b5c09975b2 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 16 Jan 2020 14:26:43 +0100 Subject: [PATCH 3/4] Extend url in titles test --- src/test/rustdoc/remove-url-from-headings.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/rustdoc/remove-url-from-headings.rs b/src/test/rustdoc/remove-url-from-headings.rs index 7fbcdbafa7486..50e45a7f53a1e 100644 --- a/src/test/rustdoc/remove-url-from-headings.rs +++ b/src/test/rustdoc/remove-url-from-headings.rs @@ -3,10 +3,15 @@ // @has foo/fn.foo.html // !@has - '//a[@href="http://a.a"]' // @has - '//a[@href="#implementing-stuff-somewhere"]' 'Implementing stuff somewhere' +// @has - '//a[@href="#another-one-urg"]' 'Another one urg' /// fooo /// /// # Implementing [stuff](http://a.a) somewhere /// /// hello +/// +/// # Another [one][two] urg +/// +/// [two]: http://a.a pub fn foo() {} From 298e8ad5dc79ecb9b5b6140499e950d6ac5f09b1 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 17 Jan 2020 19:49:03 +0100 Subject: [PATCH 4/4] Extend url in heading test a bit --- src/test/rustdoc/remove-url-from-headings.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/rustdoc/remove-url-from-headings.rs b/src/test/rustdoc/remove-url-from-headings.rs index 50e45a7f53a1e..9761c1ddbe23f 100644 --- a/src/test/rustdoc/remove-url-from-headings.rs +++ b/src/test/rustdoc/remove-url-from-headings.rs @@ -7,7 +7,7 @@ /// fooo /// -/// # Implementing [stuff](http://a.a) somewhere +/// # Implementing [stuff](http://a.a "title") somewhere /// /// hello ///