diff --git a/crates/rustdoc_to_markdown/src/markdown_writer.rs b/crates/rustdoc_to_markdown/src/markdown_writer.rs index 1aea134f1238a0819864a9aef8df4a7117b82602..cd530b0a4dbb03b1de49c8422331a1373a148326 100644 --- a/crates/rustdoc_to_markdown/src/markdown_writer.rs +++ b/crates/rustdoc_to_markdown/src/markdown_writer.rs @@ -204,6 +204,13 @@ impl MarkdownWriter { return StartTagOutcome::Skip; } } + "button" => { + if tag.attrs.borrow().iter().any(|attr| { + attr.name.local.to_string() == "id" && attr.value.to_string() == "copy-path" + }) { + return StartTagOutcome::Skip; + } + } "div" | "span" => { let classes_to_skip = ["nav-container", "sidebar-elems", "out-of-band"]; diff --git a/crates/rustdoc_to_markdown/src/rustdoc_to_markdown.rs b/crates/rustdoc_to_markdown/src/rustdoc_to_markdown.rs index dd791545686f5fa7823a7ebbf2f95efe22b4f7eb..c4743c00b89735b504ae67e9db06b830c7a50571 100644 --- a/crates/rustdoc_to_markdown/src/rustdoc_to_markdown.rs +++ b/crates/rustdoc_to_markdown/src/rustdoc_to_markdown.rs @@ -44,6 +44,27 @@ mod tests { use super::*; + #[test] + fn test_main_heading_buttons_get_removed() { + let html = indoc! {r##" +
+

Crate serde

+ + source · + +
+ "##}; + let expected = indoc! {" + # Crate serde + "} + .trim(); + + assert_eq!( + convert_rustdoc_to_markdown(html.as_bytes()).unwrap(), + expected + ) + } + #[test] fn test_rust_code_block() { let html = indoc! {r#"