From 7aa28c9b246af68d82330488f40281b60525f7c6 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Mon, 17 Jun 2024 16:44:15 -0400 Subject: [PATCH] rustdoc: Strip out additional chrome (#13172) This PR updates the HTML to Markdown converter for rustdoc to strip out some additional chrome. Namely, anchors and links to source files. Release Notes: - N/A --- crates/rustdoc/src/to_markdown.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/crates/rustdoc/src/to_markdown.rs b/crates/rustdoc/src/to_markdown.rs index 750788db19b9c03a435da6edcc04fbc42fa87d6b..872257131a11a120f078802abcc28800f3223715 100644 --- a/crates/rustdoc/src/to_markdown.rs +++ b/crates/rustdoc/src/to_markdown.rs @@ -61,7 +61,7 @@ impl HandleTag for RustdocHeadingHandler { || writer.is_inside("h6") { let text = text - .trim_matches(|char| char == '\n' || char == '\r' || char == 'ยง') + .trim_matches(|char| char == '\n' || char == '\r') .replace('\n', " "); writer.push_str(&text); @@ -212,7 +212,7 @@ pub struct RustdocChromeRemover; impl HandleTag for RustdocChromeRemover { fn should_handle(&self, tag: &str) -> bool { match tag { - "head" | "script" | "nav" | "summary" | "button" | "div" | "span" => true, + "head" | "script" | "nav" | "summary" | "button" | "a" | "div" | "span" => true, _ => false, } } @@ -234,12 +234,17 @@ impl HandleTag for RustdocChromeRemover { return StartTagOutcome::Skip; } } + "a" => { + if tag.has_any_classes(&["anchor", "doc-anchor", "src"]) { + return StartTagOutcome::Skip; + } + } "div" | "span" => { - let classes_to_skip = ["nav-container", "sidebar-elems", "out-of-band"]; - if tag.has_any_classes(&classes_to_skip) { + if tag.has_any_classes(&["nav-container", "sidebar-elems", "out-of-band"]) { return StartTagOutcome::Skip; } } + _ => {} }