diff --git a/src/convert.rs b/src/convert.rs index 93df3e2..0184870 100644 --- a/src/convert.rs +++ b/src/convert.rs @@ -37,8 +37,17 @@ pub fn convert_document(markdown: &str) -> String { state = S::None; html += "

\n"; } + let id: String = header + .to_lowercase() + .chars() + .filter_map(|c| match c { + ' ' => Some('-'), + '-' | '_' => Some(c), + _ => c.is_alphanumeric().then_some(c), + }) + .collect(); let header = &convert_line(header); - html += &format!("{header}\n"); + html += &format!("{header}\n"); continue; } }