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 text() {
    log_start();
    let _el1 = to_vertigo("foo bar");
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! { <div><p>"foo bar"</p></div> };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn heading_rule() {
    log_start();
    let _el1 = to_vertigo(
        r#"
# Heading 1

foo

---

bar
"#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <h1>"Heading 1"</h1>
            <p>"foo"</p>
            <hr />
            <p>"bar"</p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn text_bold_inline() {
    log_start();
    let _el1 = to_vertigo("foo __spam__ bar");
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! { <div><p>"foo <strong>spam</strong> bar"</p></div> };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn text_italics_inline() {
    log_start();
    let _el1 = to_vertigo("foo *spam* bar");
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! { <div><p>"foo <em>spam</em> bar"</p></div> };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn paragraph_line_join() {
    log_start();
    let _el1 = to_vertigo(
        r#"Some text.
Another line for the same paragraph.
And another"#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Some text. Another line for the same paragraph. And another"</p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn two_paragraphs() {
    log_start();
    let _el1 = to_vertigo(
        r#"Some text.

Line for second paragraph.
Another line of second paragraph."#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Some text."</p>
            <p>"Line for second paragraph. Another line of second paragraph."</p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn two_paragraphs_2() {
    log_start();
    let _el1 = to_vertigo(
        r#"Some text.
Some more text.

Line for second paragraph.
Another line of second paragraph."#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <p>"Some text. Some more text."</p>
            <p>"Line for second paragraph. Another line of second paragraph."</p>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}

#[test]
fn all_headings() {
    log_start();
    let _el1 = to_vertigo(
        r#"
# Heading 1

## Heading 2

### Heading 3

#### Heading 4

##### Heading 5

###### Heading 6
"#,
    );
    let el1_str = DomDebugFragment::from_log().to_pseudo_html();

    log_start();
    let _el2 = dom! {
        <div>
            <h1>"Heading 1"</h1>
            <h2>"Heading 2"</h2>
            <h3>"Heading 3"</h3>
            <h4>"Heading 4"</h4>
            <h5>"Heading 5"</h5>
            <h6>"Heading 6"</h6>
        </div>
    };
    let el2_str = DomDebugFragment::from_log().to_pseudo_html();

    assert_eq!(el1_str, el2_str);
}