19 lines
714 B
Rust
19 lines
714 B
Rust
use std::{cell::RefCell, rc::Rc};
|
|
|
|
use html_to_markdown::{TagHandler, markdown};
|
|
|
|
pub fn html_to_md(html: &str) -> String {
|
|
let mut handlers: Vec<TagHandler> = vec![
|
|
Rc::new(RefCell::new(markdown::ParagraphHandler)),
|
|
Rc::new(RefCell::new(markdown::HeadingHandler)),
|
|
Rc::new(RefCell::new(markdown::ListHandler)),
|
|
Rc::new(RefCell::new(markdown::TableHandler::new())),
|
|
Rc::new(RefCell::new(markdown::StyledTextHandler)),
|
|
Rc::new(RefCell::new(markdown::CodeHandler)),
|
|
Rc::new(RefCell::new(markdown::WebpageChromeRemover)),
|
|
];
|
|
|
|
html_to_markdown::convert_html_to_markdown(html.as_bytes(), &mut handlers)
|
|
.unwrap_or_else(|_| html.to_string())
|
|
}
|