1use crate::error::NoteError;
3use html2md::parse_html;
4
5#[inline]
24pub(crate) fn convert_html_to_md(html: &str) -> Result<String, NoteError> {
25    Ok(parse_html(html))
26}
27
28#[cfg(test)]
29mod tests {
30
31    use crate::html2md::convert_html_to_md;
32
33    #[test]
34    fn test_convert_html_to_md() {
35        let input: &str =
36            "<div id=\"videopodcast\">outside <span id=\"pills\">inside</span>\n</div>";
37        let expected: &str = "outside inside";
38
39        let result = convert_html_to_md(input);
40        assert_eq!(result.unwrap(), expected);
41
42        let input: &str = r#"<p><a href="/my_uri">link</a></p>"#;
44        let expected: &str = "[link](/my_uri)";
45
46        let result = convert_html_to_md(input);
47        assert_eq!(result.unwrap(), expected);
48
49        let input: &str = r#"<p><a href="/my uri">link</a></p>"#;
52        let expected: &str = "[link](</my uri>)";
53
54        let result = convert_html_to_md(input);
55        assert_eq!(result.unwrap(), expected);
56
57        let input: &str = r#"<p><a href="/my%20uri">link</a></p>"#;
60        let expected: &str = "[link](</my uri>)";
61
62        let result = convert_html_to_md(input);
63        assert_eq!(result.unwrap(), expected);
64
65        let input: &str = r#"<p><h1>Title</h1></p>"#;
68        let expected: &str = "# Title";
69
70        let result = convert_html_to_md(input);
71        assert_eq!(result.unwrap(), expected);
72    }
73}