vertigo-cmark 0.1.0

Allows to render CommonMark inside Vertigo tree
Documentation
use vertigo::{
    dom,
    inspect::{DomDebugFragment, log_start},
};

use crate::to_vertigo;

#[test]
fn nested() {
    log_start();
    let _el1 = to_vertigo(r#"<div>Vertigo <strong>Cmark</strong> hereafter</div>"#);
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <div>"Vertigo "<strong>"Cmark"</strong>" hereafter"</div>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn nested_with_cmark_wont_work() {
    log_start();
    let _el1 = to_vertigo(r#"<p>Vertigo **Cmark** hereafter</p>"#);
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Vertigo **Cmark** hereafter"</p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn anchor_with_cmark_works() {
    log_start();
    let _el1 = to_vertigo(
        r#"
<a href="https://github.com/vertigo-web/vertigo-cmark">Vertigo **Cmark**</a>

<a href="mailto:him@example.com">Do not email him</a>

<a href="https://github.com/vertigo-web/vertigo" target="_blank">Vertigo Code</a>
"#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p><a href="https://github.com/vertigo-web/vertigo-cmark">"Vertigo <strong>Cmark</strong>"</a></p>
            <p><a href="mailto:him@example.com">"Do not email him"</a></p>
            <p><a href="https://github.com/vertigo-web/vertigo" target="_blank">"Vertigo Code"</a></p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn img() {
    log_start();
    let _el1 = to_vertigo(r#"Paragraph <img src="https://example.com/img.jpg" />"#);
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Paragraph " <img src="https://example.com/img.jpg" /></p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn a_img() {
    log_start();
    let _el1 = to_vertigo(
        r#"Link: <a href="https://example.com/"><img src="https://example.com/img.jpg" /> <- click</a>"#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Link: " <a href="https://example.com/"><img src="https://example.com/img.jpg" />" <- click"</a></p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}