Strip HTML tags from anchor IDs

This commit is contained in:
Abdo 2021-11-10 00:41:44 +03:00
parent 17d1ed3716
commit 58bc92d380
1 changed files with 9 additions and 13 deletions

View File

@ -48,19 +48,11 @@ pub fn id_from_content(content: &str) -> String {
let mut content = content.to_string(); let mut content = content.to_string();
// Skip any tags or html-encoded stuff // Skip any tags or html-encoded stuff
const REPL_SUB: &[&str] = &[ lazy_static! {
"<em>", static ref HTML: Regex = Regex::new(r"(<.*?>)").unwrap();
"</em>", }
"<code>", content = HTML.replace_all(&content, "").into();
"</code>", const REPL_SUB: &[&str] = &["&lt;", "&gt;", "&amp;", "&#39;", "&quot;"];
"<strong>",
"</strong>",
"&lt;",
"&gt;",
"&amp;",
"&#39;",
"&quot;",
];
for sub in REPL_SUB { for sub in REPL_SUB {
content = content.replace(sub, ""); content = content.replace(sub, "");
} }
@ -417,6 +409,10 @@ more text with spaces
); );
assert_eq!(id_from_content("## **Bold** title"), "bold-title"); assert_eq!(id_from_content("## **Bold** title"), "bold-title");
assert_eq!(id_from_content("## `Code` title"), "code-title"); assert_eq!(id_from_content("## `Code` title"), "code-title");
assert_eq!(
id_from_content("## title <span dir=rtl>foo</span>"),
"title-foo"
);
} }
#[test] #[test]