rustdoc: Strip out additional chrome (#13172)
Marshall Bowers
created 2 years ago
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
Change summary
crates/rustdoc/src/to_markdown.rs | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
Detailed changes
@@ -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;
}
}
+
_ => {}
}