//! CommonMark test suite. // > 👉 **Important**: this module is generated by `build.rs`. // > It is generate from the latest Unicode data. extern crate micromark; use micromark::{micromark_with_options, Options}; const DANGER: &Options = &Options { allow_dangerous_html: true, allow_dangerous_protocol: true, default_line_ending: None, }; #[rustfmt::skip] #[test] fn commonmark() { assert_eq!( micromark_with_options(r###" foo baz bim "###, DANGER), r###"
foo baz bim
"###,
r###"Tabs (0)"###
);
assert_eq!(
micromark_with_options(r###" foo baz bim
"###, DANGER),
r###"foo baz bim
"###,
r###"Tabs (1)"###
);
assert_eq!(
micromark_with_options(r###" a a
ὐ a
"###, DANGER),
r###"a a
ὐ a
"###,
r###"Tabs (2)"###
);
assert_eq!(
micromark_with_options(r###" - foo
bar
"###, DANGER),
r###"foo
bar
foo
bar
"###, r###"Tabs (5)"### ); assert_eq!( micromark_with_options(r###"- foo "###, DANGER), r###"foo
foo
foo
bar
"###,
r###"Tabs (7)"###
);
assert_eq!(
micromark_with_options(r###" - foo
- bar
- baz
"###, DANGER),
r###"!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
"###, r###"Backslash escapes (11)"### ); assert_eq!( micromark_with_options(r###"\ \A\a\ \3\φ\« "###, DANGER), r###"\ \A\a\ \3\φ\«
"###, r###"Backslash escapes (12)"### ); assert_eq!( micromark_with_options(r###"\*not emphasized* \*not emphasized* <br/> not a tag [not a link](/foo) `not code` 1. not a list * not a list # not a heading [foo]: /url "not a reference" ö not a character entity
"###, r###"Backslash escapes (13)"### ); assert_eq!( micromark_with_options(r###"\\*emphasis* "###, DANGER), r###"\emphasis
"###, r###"Backslash escapes (14)"### ); assert_eq!( micromark_with_options(r###"foo\ bar "###, DANGER), r###"foo
bar
\[\`
\[\]
"###,
r###"Backslash escapes (17)"###
);
assert_eq!(
micromark_with_options(r###"~~~
\[\]
~~~
"###, DANGER),
r###"\[\]
"###,
r###"Backslash escapes (18)"###
);
assert_eq!(
micromark_with_options(r###"foo
"###,
r###"Backslash escapes (23)"###
);
assert_eq!(
micromark_with_options(r###" & © Æ Ď
¾ ℋ ⅆ
∲ ≧̸
"###, DANGER),
r###"& © Æ Ď ¾ ℋ ⅆ ∲ ≧̸
"###, r###"Entity and numeric character references (24)"### ); assert_eq!( micromark_with_options(r###"# Ӓ Ϡ "###, DANGER), r###"# Ӓ Ϡ �
"###, r###"Entity and numeric character references (25)"### ); assert_eq!( micromark_with_options(r###"" ആ ಫ "###, DANGER), r###"" ആ ಫ
"###, r###"Entity and numeric character references (26)"### ); assert_eq!( micromark_with_options(r###"  &x; abcdef0; &ThisIsNotDefined; &hi?; "###, DANGER), r###"  &x; &#; &#x; � &#abcdef0; &ThisIsNotDefined; &hi?;
"###, r###"Entity and numeric character references (27)"### ); assert_eq!( micromark_with_options(r###"© "###, DANGER), r###"©
"###, r###"Entity and numeric character references (28)"### ); assert_eq!( micromark_with_options(r###"&MadeUpEntity; "###, DANGER), r###"&MadeUpEntity;
"###, r###"Entity and numeric character references (29)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###" "###, r###"Entity and numeric character references (30)"### ); assert_eq!( micromark_with_options(r###"[foo](/föö "föö") "###, DANGER), r###" "###, r###"Entity and numeric character references (31)"### ); assert_eq!( micromark_with_options(r###"[foo] [foo]: /föö "föö" "###, DANGER), r###" "###, r###"Entity and numeric character references (32)"### ); assert_eq!( micromark_with_options(r###"``` föö foo ``` "###, DANGER), r###"foo
"###,
r###"Entity and numeric character references (33)"###
);
assert_eq!(
micromark_with_options(r###"`föö`
"###, DANGER),
r###"föö
föfö
"###,
r###"Entity and numeric character references (35)"###
);
assert_eq!(
micromark_with_options(r###"*foo*
*foo*
"###, DANGER),
r###"*foo* foo
"###, r###"Entity and numeric character references (36)"### ); assert_eq!( micromark_with_options(r###"* foo * foo "###, DANGER), r###"* foo
foo bar
"###, r###"Entity and numeric character references (38)"### ); assert_eq!( micromark_with_options(r###" foo "###, DANGER), r###"foo
"###, r###"Entity and numeric character references (39)"### ); assert_eq!( micromark_with_options(r###"[a](url "tit") "###, DANGER), r###"[a](url "tit")
"###, r###"Entity and numeric character references (40)"### ); assert_eq!( micromark_with_options(r###"- `one - two` "###, DANGER), r###"+++
"###, r###"Thematic breaks (43)"### ); assert_eq!( micromark_with_options(r###"=== "###, DANGER), r###"===
"###, r###"Thematic breaks (44)"### ); assert_eq!( micromark_with_options(r###"-- ** __ "###, DANGER), r###"-- ** __
"###, r###"Thematic breaks (45)"### ); assert_eq!( micromark_with_options(r###" *** *** *** "###, DANGER), r###"***
"###,
r###"Thematic breaks (47)"###
);
assert_eq!(
micromark_with_options(r###"Foo
***
"###, DANGER),
r###"Foo ***
"###, r###"Thematic breaks (48)"### ); assert_eq!( micromark_with_options(r###"_____________________________________ "###, DANGER), r###"_ _ _ _ a
a------
---a---
"###, r###"Thematic breaks (54)"### ); assert_eq!( micromark_with_options(r###" *-* "###, DANGER), r###"-
"###, r###"Thematic breaks (55)"### ); assert_eq!( micromark_with_options(r###"- foo *** - bar "###, DANGER), r###"Foo
bar
"###, r###"Thematic breaks (57)"### ); assert_eq!( micromark_with_options(r###"Foo --- bar "###, DANGER), r###"bar
"###, r###"Thematic breaks (58)"### ); assert_eq!( micromark_with_options(r###"* Foo * * * * Bar "###, DANGER), r###"####### foo
"###, r###"ATX headings (62)"### ); assert_eq!( micromark_with_options(r###"#5 bolt #hashtag "###, DANGER), r###"#5 bolt
#hashtag
"###, r###"ATX headings (63)"### ); assert_eq!( micromark_with_options(r###"\## foo "###, DANGER), r###"## foo
"###, r###"ATX headings (64)"### ); assert_eq!( micromark_with_options(r###"# foo *bar* \*baz\* "###, DANGER), r###"# foo
"###,
r###"ATX headings (68)"###
);
assert_eq!(
micromark_with_options(r###"foo
# bar
"###, DANGER),
r###"foo # bar
"###, r###"ATX headings (69)"### ); assert_eq!( micromark_with_options(r###"## foo ## ### bar ### "###, DANGER), r###"Foo bar
Bar foo
"###, r###"ATX headings (77)"### ); assert_eq!( micromark_with_options(r###"## # ### ### "###, DANGER), r###" "###, r###"ATX headings (78)"### ); assert_eq!( micromark_with_options(r###"Foo *bar* ========= Foo *bar* --------- "###, DANGER), r###"Foo
---
Foo
Foo ---
"###, r###"Setext headings (86)"### ); assert_eq!( micromark_with_options(r###"Foo = = Foo --- - "###, DANGER), r###"Foo = =
Foo
`
of dashes"/>
"###, r###"Setext headings (90)"### ); assert_eq!( micromark_with_options(r###"> Foo --- "###, DANGER), r###"Foo
//// "###, // r###"Setext headings (92)"### // ); assert_eq!( micromark_with_options(r###"- Foo --- "###, DANGER), r###"foo // bar // ===
//
Baz
"###, r###"Setext headings (95)"### ); assert_eq!( micromark_with_options(r###" ==== "###, DANGER), r###"====
"###, r###"Setext headings (96)"### ); assert_eq!( micromark_with_options(r###"--- --- "###, DANGER), r###"foo
foo
Foo
baz
"###, r###"Setext headings (102)"### ); assert_eq!( micromark_with_options(r###"Foo bar --- baz "###, DANGER), r###"Foo bar
baz
"###, r###"Setext headings (103)"### ); assert_eq!( micromark_with_options(r###"Foo bar * * * baz "###, DANGER), r###"Foo bar
baz
"###, r###"Setext headings (104)"### ); assert_eq!( micromark_with_options(r###"Foo bar \--- baz "###, DANGER), r###"Foo bar --- baz
"###, r###"Setext headings (105)"### ); assert_eq!( micromark_with_options(r###" a simple indented code block "###, DANGER), r###"a simple
indented code block
"###,
r###"Indented code blocks (106)"###
);
assert_eq!(
micromark_with_options(r###" - foo
bar
"###, DANGER),
r###"foo
bar
foo
<a/>
*hi*
- one
"###,
r###"Indented code blocks (109)"###
);
assert_eq!(
micromark_with_options(r###" chunk1
chunk2
chunk3
"###, DANGER),
r###"chunk1
chunk2
chunk3
"###,
r###"Indented code blocks (110)"###
);
assert_eq!(
micromark_with_options(r###" chunk1
chunk2
"###, DANGER),
r###"chunk1
chunk2
"###,
r###"Indented code blocks (111)"###
);
assert_eq!(
micromark_with_options(r###"Foo
bar
"###, DANGER),
r###"Foo bar
"###, r###"Indented code blocks (112)"### ); assert_eq!( micromark_with_options(r###" foo bar "###, DANGER), r###"foo
bar
"###, r###"Indented code blocks (113)"### ); assert_eq!( micromark_with_options(r###"# Heading foo Heading ------ foo ---- "###, DANGER), r###"foo
foo
foo
bar
"###,
r###"Indented code blocks (115)"###
);
assert_eq!(
micromark_with_options(r###"
foo
"###, DANGER),
r###"foo
"###,
r###"Indented code blocks (116)"###
);
assert_eq!(
micromark_with_options(r###" foo
"###, DANGER),
r###"foo
"###,
r###"Indented code blocks (117)"###
);
assert_eq!(
micromark_with_options(r###"```
<
>
```
"###, DANGER),
r###"<
>
"###,
r###"Fenced code blocks (118)"###
);
assert_eq!(
micromark_with_options(r###"~~~
<
>
~~~
"###, DANGER),
r###"<
>
"###,
r###"Fenced code blocks (119)"###
);
assert_eq!(
micromark_with_options(r###"``
foo
``
"###, DANGER),
r###"foo
aaa
~~~
"###,
r###"Fenced code blocks (121)"###
);
assert_eq!(
micromark_with_options(r###"~~~
aaa
```
~~~
"###, DANGER),
r###"aaa
```
"###,
r###"Fenced code blocks (122)"###
);
assert_eq!(
micromark_with_options(r###"````
aaa
```
``````
"###, DANGER),
r###"aaa
```
"###,
r###"Fenced code blocks (123)"###
);
assert_eq!(
micromark_with_options(r###"~~~~
aaa
~~~
~~~~
"###, DANGER),
r###"aaa
~~~
"###,
r###"Fenced code blocks (124)"###
);
assert_eq!(
micromark_with_options(r###"```
"###, DANGER),
r###"
"###,
r###"Fenced code blocks (125)"###
);
assert_eq!(
micromark_with_options(r###"`````
```
aaa
"###, DANGER),
r###"
```
aaa
"###,
r###"Fenced code blocks (126)"###
);
assert_eq!(
micromark_with_options(r###"> ```
> aaa
bbb
"###, DANGER),
r###"aaa
bbb
"###, r###"Fenced code blocks (127)"### ); assert_eq!( micromark_with_options(r###"``` ``` "###, DANGER), r###"
"###,
r###"Fenced code blocks (128)"###
);
assert_eq!(
micromark_with_options(r###"```
```
"###, DANGER),
r###"
"###,
r###"Fenced code blocks (129)"###
);
assert_eq!(
micromark_with_options(r###" ```
aaa
aaa
```
"###, DANGER),
r###"aaa
aaa
"###,
r###"Fenced code blocks (130)"###
);
assert_eq!(
micromark_with_options(r###" ```
aaa
aaa
aaa
```
"###, DANGER),
r###"aaa
aaa
aaa
"###,
r###"Fenced code blocks (131)"###
);
assert_eq!(
micromark_with_options(r###" ```
aaa
aaa
aaa
```
"###, DANGER),
r###"aaa
aaa
aaa
"###,
r###"Fenced code blocks (132)"###
);
assert_eq!(
micromark_with_options(r###" ```
aaa
```
"###, DANGER),
r###"```
aaa
```
"###,
r###"Fenced code blocks (133)"###
);
assert_eq!(
micromark_with_options(r###"```
aaa
```
"###, DANGER),
r###"aaa
"###,
r###"Fenced code blocks (134)"###
);
assert_eq!(
micromark_with_options(r###" ```
aaa
```
"###, DANGER),
r###"aaa
"###,
r###"Fenced code blocks (135)"###
);
assert_eq!(
micromark_with_options(r###"```
aaa
```
"###, DANGER),
r###"aaa
```
"###,
r###"Fenced code blocks (136)"###
);
assert_eq!(
micromark_with_options(r###"``` ```
aaa
"###, DANGER),
r###"
aaa
aaa
~~~ ~~
"###,
r###"Fenced code blocks (138)"###
);
assert_eq!(
micromark_with_options(r###"foo
```
bar
```
baz
"###, DANGER),
r###"foo
bar
baz
"###, r###"Fenced code blocks (139)"### ); assert_eq!( micromark_with_options(r###"foo --- ~~~ bar ~~~ # baz "###, DANGER), r###"bar
def foo(x)
return 3
end
"###,
r###"Fenced code blocks (141)"###
);
assert_eq!(
micromark_with_options(r###"~~~~ ruby startline=3 $%@#$
def foo(x)
return 3
end
~~~~~~~
"###, DANGER),
r###"def foo(x)
return 3
end
"###,
r###"Fenced code blocks (142)"###
);
assert_eq!(
micromark_with_options(r###"````;
````
"###, DANGER),
r###"
"###,
r###"Fenced code blocks (143)"###
);
assert_eq!(
micromark_with_options(r###"``` aa ```
foo
"###, DANGER),
r###"aa
foo
foo
"###,
r###"Fenced code blocks (145)"###
);
assert_eq!(
micromark_with_options(r###"```
``` aaa
```
"###, DANGER),
r###"``` aaa
"###,
r###"Fenced code blocks (146)"###
);
assert_eq!(
micromark_with_options(r###"
**Hello**, _world_. |
**Hello**, |
hi |
hi |
okay.
"###, r###"HTML blocks (148)"### ); assert_eq!( micromark_with_options(r###" *foo* "###, r###"HTML blocks (150)"### ); assert_eq!( micromark_with_options(r###"Markdown
bar
"###, r###"HTML blocks (154)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###" "###, r###"HTML blocks (158)"### ); assert_eq!( micromark_with_options(r###"foo |
foo |
foo
foo
import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
okay
"###, DANGER),
r###"
import Text.HTML.TagSoup
main :: IO ()
main = print $ parseTags tags
okay
"###, r###"HTML blocks (168)"### ); assert_eq!( micromark_with_options(r###" okay "###, DANGER), r###"okay
"###, r###"HTML blocks (169)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###" "###, r###"HTML blocks (170)"### ); assert_eq!( micromark_with_options(r###" okay "###, DANGER), r###"okay
"###, r###"HTML blocks (171)"### ); assert_eq!( micromark_with_options(r###" *foo* "###, DANGER), r###"foo
"###, r###"HTML blocks (175)"### ); assert_eq!( micromark_with_options(r###"*bar* *baz* "###, DANGER), r###"*bar*baz
"###, r###"HTML blocks (176)"### ); assert_eq!( micromark_with_options(r###"1. *bar* "###, DANGER), r###"1. *bar* "###, r###"HTML blocks (177)"### ); assert_eq!( micromark_with_options(r###" okay "###, DANGER), r###"okay
"###, r###"HTML blocks (178)"### ); assert_eq!( micromark_with_options(r###"'; ?> okay "###, DANGER), r###"'; ?>okay
"###, r###"HTML blocks (179)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###" "###, r###"HTML blocks (180)"### ); assert_eq!( micromark_with_options(r###" okay "###, DANGER), r###"okay
"###, r###"HTML blocks (181)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###"<!-- foo -->
"###,
r###"HTML blocks (182)"###
);
assert_eq!(
micromark_with_options(r###" <div>
"###,
r###"HTML blocks (183)"###
);
assert_eq!(
micromark_with_options(r###"Foo
Foo
Foo baz
"###, r###"HTML blocks (186)"### ); assert_eq!( micromark_with_options(r###"Emphasized text.
Hi |
Hi |
Hi |
[foo]: /url 'title
with blank line'
[foo]
"###, r###"Link reference definitions (196)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url [foo] "###, DANGER), r###" "###, r###"Link reference definitions (197)"### ); assert_eq!( micromark_with_options(r###"[foo]: [foo] "###, DANGER), r###"[foo]:
[foo]
"###, r###"Link reference definitions (198)"### ); assert_eq!( micromark_with_options(r###"[foo]: <> [foo] "###, DANGER), r###" "###, r###"Link reference definitions (199)"### ); assert_eq!( micromark_with_options(r###"[foo]:[foo]:
[foo]
"###, r###"Link reference definitions (200)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url\bar\*baz "foo\"bar\baz" [foo] "###, DANGER), r###" "###, r###"Link reference definitions (201)"### ); assert_eq!( micromark_with_options(r###"[foo] [foo]: url "###, DANGER), r###" "###, r###"Link reference definitions (202)"### ); assert_eq!( micromark_with_options(r###"[foo] [foo]: first [foo]: second "###, DANGER), r###" "###, r###"Link reference definitions (203)"### ); assert_eq!( micromark_with_options(r###"[FOO]: /url [Foo] "###, DANGER), r###" "###, r###"Link reference definitions (204)"### ); assert_eq!( micromark_with_options(r###"[ΑΓΩ]: /φου [αγω] "###, DANGER), r###" "###, r###"Link reference definitions (205)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url "###, DANGER), r###""###, r###"Link reference definitions (206)"### ); assert_eq!( micromark_with_options(r###"[ foo ]: /url bar "###, DANGER), r###"bar
"###, r###"Link reference definitions (207)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url "title" ok "###, DANGER), r###"[foo]: /url "title" ok
"###, r###"Link reference definitions (208)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url "title" ok "###, DANGER), r###""title" ok
"###, r###"Link reference definitions (209)"### ); assert_eq!( micromark_with_options(r###" [foo]: /url "title" [foo] "###, DANGER), r###"[foo]: /url "title"
[foo]
"###, r###"Link reference definitions (210)"### ); assert_eq!( micromark_with_options(r###"``` [foo]: /url ``` [foo] "###, DANGER), r###"[foo]: /url
[foo]
"###, r###"Link reference definitions (211)"### ); assert_eq!( micromark_with_options(r###"Foo [bar]: /baz [bar] "###, DANGER), r###"Foo [bar]: /baz
[bar]
"###, r###"Link reference definitions (212)"### ); assert_eq!( micromark_with_options(r###"# [Foo] [foo]: /url > bar "###, DANGER), r###""###, r###"Link reference definitions (213)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url bar === [foo] "###, DANGER), r###"bar
=== foo
"###, r###"Link reference definitions (215)"### ); assert_eq!( micromark_with_options(r###"[foo]: /foo-url "foo" [bar]: /bar-url "bar" [baz]: /baz-url [foo], [bar], [baz] "###, DANGER), r###" "###, r###"Link reference definitions (216)"### ); assert_eq!( micromark_with_options(r###"[foo] > [foo]: /url "###, DANGER), r###""###, r###"Link reference definitions (217)"### ); assert_eq!( micromark_with_options(r###"aaa bbb "###, DANGER), r###"
aaa
bbb
"###, r###"Paragraphs (218)"### ); assert_eq!( micromark_with_options(r###"aaa bbb ccc ddd "###, DANGER), r###"aaa bbb
ccc ddd
"###, r###"Paragraphs (219)"### ); assert_eq!( micromark_with_options(r###"aaa bbb "###, DANGER), r###"aaa
bbb
"###, r###"Paragraphs (220)"### ); assert_eq!( micromark_with_options(r###" aaa bbb "###, DANGER), r###"aaa bbb
"###, r###"Paragraphs (221)"### ); assert_eq!( micromark_with_options(r###"aaa bbb ccc "###, DANGER), r###"aaa bbb ccc
"###, r###"Paragraphs (222)"### ); assert_eq!( micromark_with_options(r###" aaa bbb "###, DANGER), r###"aaa bbb
"###, r###"Paragraphs (223)"### ); assert_eq!( micromark_with_options(r###" aaa bbb "###, DANGER), r###"aaa
bbb
"###, r###"Paragraphs (224)"### ); assert_eq!( micromark_with_options(r###"aaa bbb "###, DANGER), r###"aaa
bbb
aaa
"###, r###"Block quotes (227)"### ); assert_eq!( micromark_with_options(r###"># Foo >bar > baz "###, DANGER), r###"Foo
bar baz
"###, r###"Block quotes (228)"### ); assert_eq!( micromark_with_options(r###" > # Foo > bar > baz "###, DANGER), r###"Foo
bar baz
"###, r###"Block quotes (229)"### ); assert_eq!( micromark_with_options(r###" > # Foo > bar > baz "###, DANGER), r###"Foo
bar baz
> # Foo
> bar
> baz
"###,
r###"Block quotes (230)"###
);
// To do: some lazy bug.
// assert_eq!(
// micromark_with_options(r###"> # Foo
// > bar
// baz
// "###, DANGER),
// r###"//// "###, // r###"Block quotes (231)"### // ); assert_eq!( micromark_with_options(r###"> bar baz > foo "###, DANGER), r###"Foo
//bar // baz
//
"###, r###"Block quotes (232)"### ); assert_eq!( micromark_with_options(r###"> foo --- "###, DANGER), r###"bar baz foo
foo
- foo
foo
bar
"###,
r###"Block quotes (235)"###
);
assert_eq!(
micromark_with_options(r###"> ```
foo
```
"###, DANGER),
r###"foo
"###,
r###"Block quotes (236)"###
);
// To do: some lazy bug.
// assert_eq!(
// micromark_with_options(r###"> foo
// - bar
// "###, DANGER),
// r###"//// "###, // r###"Block quotes (237)"### // ); assert_eq!( micromark_with_options(r###"> "###, DANGER), r###"foo // - bar
//
"###, r###"Block quotes (238)"### ); assert_eq!( micromark_with_options(r###"> > > "###, DANGER), r###"
"###, r###"Block quotes (239)"### ); assert_eq!( micromark_with_options(r###"> > foo > "###, DANGER), r###"
"###, r###"Block quotes (240)"### ); assert_eq!( micromark_with_options(r###"> foo > bar "###, DANGER), r###"foo
foo
"###, r###"Block quotes (241)"### ); assert_eq!( micromark_with_options(r###"> foo > bar "###, DANGER), r###"bar
"###, r###"Block quotes (242)"### ); assert_eq!( micromark_with_options(r###"> foo > > bar "###, DANGER), r###"foo bar
"###, r###"Block quotes (243)"### ); assert_eq!( micromark_with_options(r###"foo > bar "###, DANGER), r###"foo
bar
foo
"###, r###"Block quotes (244)"### ); assert_eq!( micromark_with_options(r###"> aaa *** > bbb "###, DANGER), r###"bar
aaa
"###, r###"Block quotes (245)"### ); // To do: some lazy bug. // assert_eq!( // micromark_with_options(r###"> bar // baz // "###, DANGER), // r###"bbb
//// "###, // r###"Block quotes (246)"### // ); assert_eq!( micromark_with_options(r###"> bar baz "###, DANGER), r###"bar // baz
//
bar
baz
"###, r###"Block quotes (247)"### ); assert_eq!( micromark_with_options(r###"> bar > baz "###, DANGER), r###"bar
baz
"###, r###"Block quotes (248)"### ); // To do: some lazy bug. // assert_eq!( // micromark_with_options(r###"> > > foo // bar // "###, DANGER), // r###"//// "###, // r###"Block quotes (249)"### // ); // To do: some lazy bug. // assert_eq!( // micromark_with_options(r###">>> foo // > bar // >>baz // "###, DANGER), // r###"////////foo // bar
//
//// "###, // r###"Block quotes (250)"### // ); assert_eq!( micromark_with_options(r###"> code > not code "###, DANGER), r###"////////foo // bar // baz
//
code
"###, r###"Block quotes (251)"### ); assert_eq!( micromark_with_options(r###"A paragraph with two lines. indented code > A block quote. "###, DANGER), r###"not code
A paragraph with two lines.
indented code
"###, r###"List items (252)"### ); assert_eq!( micromark_with_options(r###"1. A paragraph with two lines. indented code > A block quote. "###, DANGER), r###"A block quote.
A paragraph with two lines.
indented code
A block quote.
two
"###, r###"List items (254)"### ); assert_eq!( micromark_with_options(r###"- one two "###, DANGER), r###"one
two
two
"###,
r###"List items (256)"###
);
assert_eq!(
micromark_with_options(r###" - one
two
"###, DANGER),
r###"one
two
"###, r###"List items (258)"### ); assert_eq!( micromark_with_options(r###">>- one >> > > two "###, DANGER), r###"
one
two
"###, r###"List items (259)"### ); assert_eq!( micromark_with_options(r###"-one 2.two "###, DANGER), r###"
- one
two
-one
2.two
"###, r###"List items (260)"### ); assert_eq!( micromark_with_options(r###"- foo bar "###, DANGER), r###"foo
bar
foo
bar
baz
bam
Foo
bar
baz
1234567890. not ok
"###, r###"List items (265)"### ); assert_eq!( micromark_with_options(r###"0. ok "###, DANGER), r###"-1. not ok
"###, r###"List items (268)"### ); assert_eq!( micromark_with_options(r###"- foo bar "###, DANGER), r###"foo
bar
foo
bar
indented code
paragraph
more code
"###,
r###"List items (271)"###
);
assert_eq!(
micromark_with_options(r###"1. indented code
paragraph
more code
"###, DANGER),
r###"indented code
paragraph
more code
indented code
paragraph
more code
foo
bar
"###, r###"List items (274)"### ); assert_eq!( micromark_with_options(r###"- foo bar "###, DANGER), r###"bar
"###, r###"List items (275)"### ); assert_eq!( micromark_with_options(r###"- foo bar "###, DANGER), r###"foo
bar
bar
baz
foo
"###, r###"List items (279)"### ); assert_eq!( micromark_with_options(r###"- foo - - bar "###, DANGER), r###"foo *
foo 1.
"###, r###"List items (284)"### ); assert_eq!( micromark_with_options(r###" 1. A paragraph with two lines. indented code > A block quote. "###, DANGER), r###"A paragraph with two lines.
indented code
A block quote.
A paragraph with two lines.
indented code
A block quote.
A paragraph with two lines.
indented code
A block quote.
1. A paragraph
with two lines.
indented code
> A block quote.
"###,
r###"List items (288)"###
);
assert_eq!(
micromark_with_options(r###" 1. A paragraph
with two lines.
indented code
> A block quote.
"###, DANGER),
r###"A paragraph with two lines.
indented code
A block quote.
//// "###, // r###"List items (291)"### // ); // To do: Some lazy bug. // assert_eq!( // micromark_with_options(r###"> 1. > Blockquote // > continued here. // "###, DANGER), // r###"//
//- //
//////Blockquote // continued here.
//
//// "###, // r###"List items (292)"### // ); assert_eq!( micromark_with_options(r###"- foo - bar - baz - boo "###, DANGER), r###"//
//- //
//////Blockquote // continued here.
//
Foo
The number of windows in my house is 14. The number of doors is 6.
"###, r###"Lists (303)"### ); assert_eq!( micromark_with_options(r###"The number of windows in my house is 1. The number of doors is 6. "###, DANGER), r###"The number of windows in my house is
foo
bar
baz
baz
bim
foo
notcode
foo
code
"###,
r###"Lists (308)"###
);
assert_eq!(
micromark_with_options(r###"- a
- b
- c
- d
- e
- f
- g
"###, DANGER),
r###"a
b
c
a
b
3. c
"###,
r###"Lists (312)"###
);
assert_eq!(
micromark_with_options(r###"- a
- b
- c
"###, DANGER),
r###"a
b
c
a
c
a
b
c
d
a
b
d
b
b
c
b
b
c
foo
bar
foo
baz
a
d
hi
lo`
foo
foo ` bar
``
``
a
b
foo bar baz
foo
foo bar baz
foo\
bar`
foo`bar
foo `` bar
*foo*
[not a link](/foo
)
<a href="
">`
<http://foo.bar.
baz>`
```foo``
"###, r###"Code spans (346)"### ); assert_eq!( micromark_with_options(r###"`foo "###, DANGER), r###"`foo
"###, r###"Code spans (347)"### ); assert_eq!( micromark_with_options(r###"`foo``bar`` "###, DANGER), r###"`foobar
foo bar
"###, r###"Emphasis and strong emphasis (349)"### ); assert_eq!( micromark_with_options(r###"a * foo bar* "###, DANGER), r###"a * foo bar*
"###, r###"Emphasis and strong emphasis (350)"### ); assert_eq!( micromark_with_options(r###"a*"foo"* "###, DANGER), r###"a*"foo"*
"###, r###"Emphasis and strong emphasis (351)"### ); assert_eq!( micromark_with_options(r###"* a * "###, DANGER), r###"* a *
"###, r###"Emphasis and strong emphasis (352)"### ); assert_eq!( micromark_with_options(r###"foo*bar* "###, DANGER), r###"foobar
"###, r###"Emphasis and strong emphasis (353)"### ); assert_eq!( micromark_with_options(r###"5*6*78 "###, DANGER), r###"5678
"###, r###"Emphasis and strong emphasis (354)"### ); assert_eq!( micromark_with_options(r###"_foo bar_ "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (355)"### ); assert_eq!( micromark_with_options(r###"_ foo bar_ "###, DANGER), r###"_ foo bar_
"###, r###"Emphasis and strong emphasis (356)"### ); assert_eq!( micromark_with_options(r###"a_"foo"_ "###, DANGER), r###"a_"foo"_
"###, r###"Emphasis and strong emphasis (357)"### ); assert_eq!( micromark_with_options(r###"foo_bar_ "###, DANGER), r###"foo_bar_
"###, r###"Emphasis and strong emphasis (358)"### ); assert_eq!( micromark_with_options(r###"5_6_78 "###, DANGER), r###"5_6_78
"###, r###"Emphasis and strong emphasis (359)"### ); assert_eq!( micromark_with_options(r###"пристаням_стремятся_ "###, DANGER), r###"пристаням_стремятся_
"###, r###"Emphasis and strong emphasis (360)"### ); assert_eq!( micromark_with_options(r###"aa_"bb"_cc "###, DANGER), r###"aa_"bb"_cc
"###, r###"Emphasis and strong emphasis (361)"### ); assert_eq!( micromark_with_options(r###"foo-_(bar)_ "###, DANGER), r###"foo-(bar)
"###, r###"Emphasis and strong emphasis (362)"### ); assert_eq!( micromark_with_options(r###"_foo* "###, DANGER), r###"_foo*
"###, r###"Emphasis and strong emphasis (363)"### ); assert_eq!( micromark_with_options(r###"*foo bar * "###, DANGER), r###"*foo bar *
"###, r###"Emphasis and strong emphasis (364)"### ); assert_eq!( micromark_with_options(r###"*foo bar * "###, DANGER), r###"*foo bar *
"###, r###"Emphasis and strong emphasis (365)"### ); assert_eq!( micromark_with_options(r###"*(*foo) "###, DANGER), r###"*(*foo)
"###, r###"Emphasis and strong emphasis (366)"### ); assert_eq!( micromark_with_options(r###"*(*foo*)* "###, DANGER), r###"(foo)
"###, r###"Emphasis and strong emphasis (367)"### ); assert_eq!( micromark_with_options(r###"*foo*bar "###, DANGER), r###"foobar
"###, r###"Emphasis and strong emphasis (368)"### ); assert_eq!( micromark_with_options(r###"_foo bar _ "###, DANGER), r###"_foo bar _
"###, r###"Emphasis and strong emphasis (369)"### ); assert_eq!( micromark_with_options(r###"_(_foo) "###, DANGER), r###"_(_foo)
"###, r###"Emphasis and strong emphasis (370)"### ); assert_eq!( micromark_with_options(r###"_(_foo_)_ "###, DANGER), r###"(foo)
"###, r###"Emphasis and strong emphasis (371)"### ); assert_eq!( micromark_with_options(r###"_foo_bar "###, DANGER), r###"_foo_bar
"###, r###"Emphasis and strong emphasis (372)"### ); assert_eq!( micromark_with_options(r###"_пристаням_стремятся "###, DANGER), r###"_пристаням_стремятся
"###, r###"Emphasis and strong emphasis (373)"### ); assert_eq!( micromark_with_options(r###"_foo_bar_baz_ "###, DANGER), r###"foo_bar_baz
"###, r###"Emphasis and strong emphasis (374)"### ); assert_eq!( micromark_with_options(r###"_(bar)_. "###, DANGER), r###"(bar).
"###, r###"Emphasis and strong emphasis (375)"### ); assert_eq!( micromark_with_options(r###"**foo bar** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (376)"### ); assert_eq!( micromark_with_options(r###"** foo bar** "###, DANGER), r###"** foo bar**
"###, r###"Emphasis and strong emphasis (377)"### ); assert_eq!( micromark_with_options(r###"a**"foo"** "###, DANGER), r###"a**"foo"**
"###, r###"Emphasis and strong emphasis (378)"### ); assert_eq!( micromark_with_options(r###"foo**bar** "###, DANGER), r###"foobar
"###, r###"Emphasis and strong emphasis (379)"### ); assert_eq!( micromark_with_options(r###"__foo bar__ "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (380)"### ); assert_eq!( micromark_with_options(r###"__ foo bar__ "###, DANGER), r###"__ foo bar__
"###, r###"Emphasis and strong emphasis (381)"### ); assert_eq!( micromark_with_options(r###"__ foo bar__ "###, DANGER), r###"__ foo bar__
"###, r###"Emphasis and strong emphasis (382)"### ); assert_eq!( micromark_with_options(r###"a__"foo"__ "###, DANGER), r###"a__"foo"__
"###, r###"Emphasis and strong emphasis (383)"### ); assert_eq!( micromark_with_options(r###"foo__bar__ "###, DANGER), r###"foo__bar__
"###, r###"Emphasis and strong emphasis (384)"### ); assert_eq!( micromark_with_options(r###"5__6__78 "###, DANGER), r###"5__6__78
"###, r###"Emphasis and strong emphasis (385)"### ); assert_eq!( micromark_with_options(r###"пристаням__стремятся__ "###, DANGER), r###"пристаням__стремятся__
"###, r###"Emphasis and strong emphasis (386)"### ); assert_eq!( micromark_with_options(r###"__foo, __bar__, baz__ "###, DANGER), r###"foo, bar, baz
"###, r###"Emphasis and strong emphasis (387)"### ); assert_eq!( micromark_with_options(r###"foo-__(bar)__ "###, DANGER), r###"foo-(bar)
"###, r###"Emphasis and strong emphasis (388)"### ); assert_eq!( micromark_with_options(r###"**foo bar ** "###, DANGER), r###"**foo bar **
"###, r###"Emphasis and strong emphasis (389)"### ); assert_eq!( micromark_with_options(r###"**(**foo) "###, DANGER), r###"**(**foo)
"###, r###"Emphasis and strong emphasis (390)"### ); assert_eq!( micromark_with_options(r###"*(**foo**)* "###, DANGER), r###"(foo)
"###, r###"Emphasis and strong emphasis (391)"### ); assert_eq!( micromark_with_options(r###"**Gomphocarpus (*Gomphocarpus physocarpus*, syn. *Asclepias physocarpa*)** "###, DANGER), r###"Gomphocarpus (Gomphocarpus physocarpus, syn. Asclepias physocarpa)
"###, r###"Emphasis and strong emphasis (392)"### ); assert_eq!( micromark_with_options(r###"**foo "*bar*" foo** "###, DANGER), r###"foo "bar" foo
"###, r###"Emphasis and strong emphasis (393)"### ); assert_eq!( micromark_with_options(r###"**foo**bar "###, DANGER), r###"foobar
"###, r###"Emphasis and strong emphasis (394)"### ); assert_eq!( micromark_with_options(r###"__foo bar __ "###, DANGER), r###"__foo bar __
"###, r###"Emphasis and strong emphasis (395)"### ); assert_eq!( micromark_with_options(r###"__(__foo) "###, DANGER), r###"__(__foo)
"###, r###"Emphasis and strong emphasis (396)"### ); assert_eq!( micromark_with_options(r###"_(__foo__)_ "###, DANGER), r###"(foo)
"###, r###"Emphasis and strong emphasis (397)"### ); assert_eq!( micromark_with_options(r###"__foo__bar "###, DANGER), r###"__foo__bar
"###, r###"Emphasis and strong emphasis (398)"### ); assert_eq!( micromark_with_options(r###"__пристаням__стремятся "###, DANGER), r###"__пристаням__стремятся
"###, r###"Emphasis and strong emphasis (399)"### ); assert_eq!( micromark_with_options(r###"__foo__bar__baz__ "###, DANGER), r###"foo__bar__baz
"###, r###"Emphasis and strong emphasis (400)"### ); assert_eq!( micromark_with_options(r###"__(bar)__. "###, DANGER), r###"(bar).
"###, r###"Emphasis and strong emphasis (401)"### ); assert_eq!( micromark_with_options(r###"*foo [bar](/url)* "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (402)"### ); assert_eq!( micromark_with_options(r###"*foo bar* "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (403)"### ); assert_eq!( micromark_with_options(r###"_foo __bar__ baz_ "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (404)"### ); assert_eq!( micromark_with_options(r###"_foo _bar_ baz_ "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (405)"### ); assert_eq!( micromark_with_options(r###"__foo_ bar_ "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (406)"### ); assert_eq!( micromark_with_options(r###"*foo *bar** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (407)"### ); assert_eq!( micromark_with_options(r###"*foo **bar** baz* "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (408)"### ); assert_eq!( micromark_with_options(r###"*foo**bar**baz* "###, DANGER), r###"foobarbaz
"###, r###"Emphasis and strong emphasis (409)"### ); assert_eq!( micromark_with_options(r###"*foo**bar* "###, DANGER), r###"foo**bar
"###, r###"Emphasis and strong emphasis (410)"### ); assert_eq!( micromark_with_options(r###"***foo** bar* "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (411)"### ); assert_eq!( micromark_with_options(r###"*foo **bar*** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (412)"### ); assert_eq!( micromark_with_options(r###"*foo**bar*** "###, DANGER), r###"foobar
"###, r###"Emphasis and strong emphasis (413)"### ); assert_eq!( micromark_with_options(r###"foo***bar***baz "###, DANGER), r###"foobarbaz
"###, r###"Emphasis and strong emphasis (414)"### ); assert_eq!( micromark_with_options(r###"foo******bar*********baz "###, DANGER), r###"foobar***baz
"###, r###"Emphasis and strong emphasis (415)"### ); assert_eq!( micromark_with_options(r###"*foo **bar *baz* bim** bop* "###, DANGER), r###"foo bar baz bim bop
"###, r###"Emphasis and strong emphasis (416)"### ); assert_eq!( micromark_with_options(r###"*foo [*bar*](/url)* "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (417)"### ); assert_eq!( micromark_with_options(r###"** is not an empty emphasis "###, DANGER), r###"** is not an empty emphasis
"###, r###"Emphasis and strong emphasis (418)"### ); assert_eq!( micromark_with_options(r###"**** is not an empty strong emphasis "###, DANGER), r###"**** is not an empty strong emphasis
"###, r###"Emphasis and strong emphasis (419)"### ); assert_eq!( micromark_with_options(r###"**foo [bar](/url)** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (420)"### ); assert_eq!( micromark_with_options(r###"**foo bar** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (421)"### ); assert_eq!( micromark_with_options(r###"__foo _bar_ baz__ "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (422)"### ); assert_eq!( micromark_with_options(r###"__foo __bar__ baz__ "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (423)"### ); assert_eq!( micromark_with_options(r###"____foo__ bar__ "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (424)"### ); assert_eq!( micromark_with_options(r###"**foo **bar**** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (425)"### ); assert_eq!( micromark_with_options(r###"**foo *bar* baz** "###, DANGER), r###"foo bar baz
"###, r###"Emphasis and strong emphasis (426)"### ); assert_eq!( micromark_with_options(r###"**foo*bar*baz** "###, DANGER), r###"foobarbaz
"###, r###"Emphasis and strong emphasis (427)"### ); assert_eq!( micromark_with_options(r###"***foo* bar** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (428)"### ); assert_eq!( micromark_with_options(r###"**foo *bar*** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (429)"### ); assert_eq!( micromark_with_options(r###"**foo *bar **baz** bim* bop** "###, DANGER), r###"foo bar baz bim bop
"###, r###"Emphasis and strong emphasis (430)"### ); assert_eq!( micromark_with_options(r###"**foo [*bar*](/url)** "###, DANGER), r###"foo bar
"###, r###"Emphasis and strong emphasis (431)"### ); assert_eq!( micromark_with_options(r###"__ is not an empty emphasis "###, DANGER), r###"__ is not an empty emphasis
"###, r###"Emphasis and strong emphasis (432)"### ); assert_eq!( micromark_with_options(r###"____ is not an empty strong emphasis "###, DANGER), r###"____ is not an empty strong emphasis
"###, r###"Emphasis and strong emphasis (433)"### ); assert_eq!( micromark_with_options(r###"foo *** "###, DANGER), r###"foo ***
"###, r###"Emphasis and strong emphasis (434)"### ); assert_eq!( micromark_with_options(r###"foo *\** "###, DANGER), r###"foo *
"###, r###"Emphasis and strong emphasis (435)"### ); assert_eq!( micromark_with_options(r###"foo *_* "###, DANGER), r###"foo _
"###, r###"Emphasis and strong emphasis (436)"### ); assert_eq!( micromark_with_options(r###"foo ***** "###, DANGER), r###"foo *****
"###, r###"Emphasis and strong emphasis (437)"### ); assert_eq!( micromark_with_options(r###"foo **\*** "###, DANGER), r###"foo *
"###, r###"Emphasis and strong emphasis (438)"### ); assert_eq!( micromark_with_options(r###"foo **_** "###, DANGER), r###"foo _
"###, r###"Emphasis and strong emphasis (439)"### ); assert_eq!( micromark_with_options(r###"**foo* "###, DANGER), r###"*foo
"###, r###"Emphasis and strong emphasis (440)"### ); assert_eq!( micromark_with_options(r###"*foo** "###, DANGER), r###"foo*
"###, r###"Emphasis and strong emphasis (441)"### ); assert_eq!( micromark_with_options(r###"***foo** "###, DANGER), r###"*foo
"###, r###"Emphasis and strong emphasis (442)"### ); assert_eq!( micromark_with_options(r###"****foo* "###, DANGER), r###"***foo
"###, r###"Emphasis and strong emphasis (443)"### ); assert_eq!( micromark_with_options(r###"**foo*** "###, DANGER), r###"foo*
"###, r###"Emphasis and strong emphasis (444)"### ); assert_eq!( micromark_with_options(r###"*foo**** "###, DANGER), r###"foo***
"###, r###"Emphasis and strong emphasis (445)"### ); assert_eq!( micromark_with_options(r###"foo ___ "###, DANGER), r###"foo ___
"###, r###"Emphasis and strong emphasis (446)"### ); assert_eq!( micromark_with_options(r###"foo _\__ "###, DANGER), r###"foo _
"###, r###"Emphasis and strong emphasis (447)"### ); assert_eq!( micromark_with_options(r###"foo _*_ "###, DANGER), r###"foo *
"###, r###"Emphasis and strong emphasis (448)"### ); assert_eq!( micromark_with_options(r###"foo _____ "###, DANGER), r###"foo _____
"###, r###"Emphasis and strong emphasis (449)"### ); assert_eq!( micromark_with_options(r###"foo __\___ "###, DANGER), r###"foo _
"###, r###"Emphasis and strong emphasis (450)"### ); assert_eq!( micromark_with_options(r###"foo __*__ "###, DANGER), r###"foo *
"###, r###"Emphasis and strong emphasis (451)"### ); assert_eq!( micromark_with_options(r###"__foo_ "###, DANGER), r###"_foo
"###, r###"Emphasis and strong emphasis (452)"### ); assert_eq!( micromark_with_options(r###"_foo__ "###, DANGER), r###"foo_
"###, r###"Emphasis and strong emphasis (453)"### ); assert_eq!( micromark_with_options(r###"___foo__ "###, DANGER), r###"_foo
"###, r###"Emphasis and strong emphasis (454)"### ); assert_eq!( micromark_with_options(r###"____foo_ "###, DANGER), r###"___foo
"###, r###"Emphasis and strong emphasis (455)"### ); assert_eq!( micromark_with_options(r###"__foo___ "###, DANGER), r###"foo_
"###, r###"Emphasis and strong emphasis (456)"### ); assert_eq!( micromark_with_options(r###"_foo____ "###, DANGER), r###"foo___
"###, r###"Emphasis and strong emphasis (457)"### ); assert_eq!( micromark_with_options(r###"**foo** "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (458)"### ); assert_eq!( micromark_with_options(r###"*_foo_* "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (459)"### ); assert_eq!( micromark_with_options(r###"__foo__ "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (460)"### ); assert_eq!( micromark_with_options(r###"_*foo*_ "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (461)"### ); assert_eq!( micromark_with_options(r###"****foo**** "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (462)"### ); assert_eq!( micromark_with_options(r###"____foo____ "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (463)"### ); assert_eq!( micromark_with_options(r###"******foo****** "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (464)"### ); assert_eq!( micromark_with_options(r###"***foo*** "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (465)"### ); assert_eq!( micromark_with_options(r###"_____foo_____ "###, DANGER), r###"foo
"###, r###"Emphasis and strong emphasis (466)"### ); assert_eq!( micromark_with_options(r###"*foo _bar* baz_ "###, DANGER), r###"foo _bar baz_
"###, r###"Emphasis and strong emphasis (467)"### ); assert_eq!( micromark_with_options(r###"*foo __bar *baz bim__ bam* "###, DANGER), r###"foo bar *baz bim bam
"###, r###"Emphasis and strong emphasis (468)"### ); assert_eq!( micromark_with_options(r###"**foo **bar baz** "###, DANGER), r###"**foo bar baz
"###, r###"Emphasis and strong emphasis (469)"### ); assert_eq!( micromark_with_options(r###"*foo *bar baz* "###, DANGER), r###"*foo bar baz
"###, r###"Emphasis and strong emphasis (470)"### ); assert_eq!( micromark_with_options(r###"*[bar*](/url) "###, DANGER), r###"*bar*
"###, r###"Emphasis and strong emphasis (471)"### ); assert_eq!( micromark_with_options(r###"_foo [bar_](/url) "###, DANGER), r###"_foo bar_
"###, r###"Emphasis and strong emphasis (472)"### ); assert_eq!( micromark_with_options(r###"* "###, DANGER), r###"*
"###, r###"Emphasis and strong emphasis (473)"### ); assert_eq!( micromark_with_options(r###"** "###, DANGER), r###" "###, r###"Emphasis and strong emphasis (474)"### ); assert_eq!( micromark_with_options(r###"__ "###, DANGER), r###" "###, r###"Emphasis and strong emphasis (475)"### ); assert_eq!( micromark_with_options(r###"*a `*`* "###, DANGER), r###"a *
a _
[link](/my uri)
"###, r###"Links (486)"### ); assert_eq!( micromark_with_options(r###"[link]([link](foo bar)
"###, r###"Links (488)"### ); assert_eq!( micromark_with_options(r###"[link]([link](
[link](<foo>)
"###, r###"Links (491)"### ); assert_eq!( micromark_with_options(r###"[a]( [a](c) "###, DANGER), r###"[a](<b)c [a](<b)c> [a](c)
"###, r###"Links (492)"### ); assert_eq!( micromark_with_options(r###"[link](\(foo\)) "###, DANGER), r###" "###, r###"Links (493)"### ); assert_eq!( micromark_with_options(r###"[link](foo(and(bar))) "###, DANGER), r###" "###, r###"Links (494)"### ); assert_eq!( micromark_with_options(r###"[link](foo(and(bar)) "###, DANGER), r###"[link](foo(and(bar))
"###, r###"Links (495)"### ); assert_eq!( micromark_with_options(r###"[link](foo\(and\(bar\)) "###, DANGER), r###" "###, r###"Links (496)"### ); assert_eq!( micromark_with_options(r###"[link]([link](/url "title "and" title")
"###, r###"Links (506)"### ); assert_eq!( micromark_with_options(r###"[link](/url 'title "and" title') "###, DANGER), r###" "###, r###"Links (507)"### ); assert_eq!( micromark_with_options(r###"[link]( /uri "title" ) "###, DANGER), r###" "###, r###"Links (508)"### ); assert_eq!( micromark_with_options(r###"[link] (/uri) "###, DANGER), r###"[link] (/uri)
"###, r###"Links (509)"### ); assert_eq!( micromark_with_options(r###"[link [foo [bar]]](/uri) "###, DANGER), r###" "###, r###"Links (510)"### ); assert_eq!( micromark_with_options(r###"[link] bar](/uri) "###, DANGER), r###"[link] bar](/uri)
"###, r###"Links (511)"### ); assert_eq!( micromark_with_options(r###"[link [bar](/uri) "###, DANGER), r###"[link bar
"###, r###"Links (512)"### ); assert_eq!( micromark_with_options(r###"[link \[bar](/uri) "###, DANGER), r###" "###, r###"Links (513)"### ); assert_eq!( micromark_with_options(r###"[link *foo **bar** `#`*](/uri) "###, DANGER), r###" "###, r###"Links (514)"### ); assert_eq!( micromark_with_options(r###"[![moon](moon.jpg)](/uri) "###, DANGER), r###" "###, r###"Links (515)"### ); assert_eq!( micromark_with_options(r###"[foo [bar](/uri)](/uri) "###, DANGER), r###"[foo bar](/uri)
"###, r###"Links (516)"### ); assert_eq!( micromark_with_options(r###"[foo *[bar [baz](/uri)](/uri)*](/uri) "###, DANGER), r###"[foo [bar baz](/uri)](/uri)
"###, r###"Links (517)"### ); assert_eq!( micromark_with_options(r###"![[[foo](uri1)](uri2)](uri3) "###, DANGER), r###" "###, r###"Links (518)"### ); assert_eq!( micromark_with_options(r###"*[foo*](/uri) "###, DANGER), r###"*foo*
"###, r###"Links (519)"### ); assert_eq!( micromark_with_options(r###"[foo *bar](baz*) "###, DANGER), r###" "###, r###"Links (520)"### ); assert_eq!( micromark_with_options(r###"*foo [bar* baz] "###, DANGER), r###"foo [bar baz]
"###, r###"Links (521)"### ); assert_eq!( micromark_with_options(r###"[foo[foo
[foo](/uri)
[foohttp://example.com/?search=](uri)
"###, r###"Links (524)"### ); assert_eq!( micromark_with_options(r###"[foo][bar] [bar]: /url "title" "###, DANGER), r###" "###, r###"Links (525)"### ); assert_eq!( micromark_with_options(r###"[link [foo [bar]]][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (526)"### ); assert_eq!( micromark_with_options(r###"[link \[bar][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (527)"### ); assert_eq!( micromark_with_options(r###"[link *foo **bar** `#`*][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (528)"### ); assert_eq!( micromark_with_options(r###"[![moon](moon.jpg)][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (529)"### ); assert_eq!( micromark_with_options(r###"[foo [bar](/uri)][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (530)"### ); assert_eq!( micromark_with_options(r###"[foo *bar [baz][ref]*][ref] [ref]: /uri "###, DANGER), r###" "###, r###"Links (531)"### ); assert_eq!( micromark_with_options(r###"*[foo*][ref] [ref]: /uri "###, DANGER), r###"*foo*
"###, r###"Links (532)"### ); assert_eq!( micromark_with_options(r###"[foo *bar][ref]* [ref]: /uri "###, DANGER), r###" "###, r###"Links (533)"### ); assert_eq!( micromark_with_options(r###"[foo[foo
[foo][ref]
[foohttp://example.com/?search=][ref]
"###, r###"Links (536)"### ); assert_eq!( micromark_with_options(r###"[foo][BaR] [bar]: /url "title" "###, DANGER), r###" "###, r###"Links (537)"### ); // To do: Some unicode normalization bug. // assert_eq!( // micromark_with_options(r###"[ẞ] // [SS]: /url // "###, DANGER), // r###" // "###, // r###"Links (538)"### // ); assert_eq!( micromark_with_options(r###"[Foo bar]: /url [Baz][Foo bar] "###, DANGER), r###" "###, r###"Links (539)"### ); assert_eq!( micromark_with_options(r###"[foo] [bar] [bar]: /url "title" "###, DANGER), r###"[foo] bar
"###, r###"Links (540)"### ); assert_eq!( micromark_with_options(r###"[foo] [bar] [bar]: /url "title" "###, DANGER), r###"[foo] bar
"###, r###"Links (541)"### ); assert_eq!( micromark_with_options(r###"[foo]: /url1 [foo]: /url2 [bar][foo] "###, DANGER), r###" "###, r###"Links (542)"### ); assert_eq!( micromark_with_options(r###"[bar][foo\!] [foo!]: /url "###, DANGER), r###"[bar][foo!]
"###, r###"Links (543)"### ); assert_eq!( micromark_with_options(r###"[foo][ref[] [ref[]: /uri "###, DANGER), r###"[foo][ref[]
[ref[]: /uri
"###, r###"Links (544)"### ); assert_eq!( micromark_with_options(r###"[foo][ref[bar]] [ref[bar]]: /uri "###, DANGER), r###"[foo][ref[bar]]
[ref[bar]]: /uri
"###, r###"Links (545)"### ); assert_eq!( micromark_with_options(r###"[[[foo]]] [[[foo]]]: /url "###, DANGER), r###"[[[foo]]]
[[[foo]]]: /url
"###, r###"Links (546)"### ); assert_eq!( micromark_with_options(r###"[foo][ref\[] [ref\[]: /uri "###, DANGER), r###" "###, r###"Links (547)"### ); assert_eq!( micromark_with_options(r###"[bar\\]: /uri [bar\\] "###, DANGER), r###" "###, r###"Links (548)"### ); assert_eq!( micromark_with_options(r###"[] []: /uri "###, DANGER), r###"[]
[]: /uri
"###, r###"Links (549)"### ); assert_eq!( micromark_with_options(r###"[ ] [ ]: /uri "###, DANGER), r###"[ ]
[ ]: /uri
"###, r###"Links (550)"### ); assert_eq!( micromark_with_options(r###"[foo][] [foo]: /url "title" "###, DANGER), r###" "###, r###"Links (551)"### ); assert_eq!( micromark_with_options(r###"[*foo* bar][] [*foo* bar]: /url "title" "###, DANGER), r###" "###, r###"Links (552)"### ); assert_eq!( micromark_with_options(r###"[Foo][] [foo]: /url "title" "###, DANGER), r###" "###, r###"Links (553)"### ); assert_eq!( micromark_with_options(r###"[foo] [] [foo]: /url "title" "###, DANGER), r###"foo []
"###, r###"Links (554)"### ); assert_eq!( micromark_with_options(r###"[foo] [foo]: /url "title" "###, DANGER), r###" "###, r###"Links (555)"### ); assert_eq!( micromark_with_options(r###"[*foo* bar] [*foo* bar]: /url "title" "###, DANGER), r###" "###, r###"Links (556)"### ); assert_eq!( micromark_with_options(r###"[[*foo* bar]] [*foo* bar]: /url "title" "###, DANGER), r###"[foo bar]
"###, r###"Links (557)"### ); assert_eq!( micromark_with_options(r###"[[bar [foo] [foo]: /url "###, DANGER), r###"[[bar foo
"###, r###"Links (558)"### ); assert_eq!( micromark_with_options(r###"[Foo] [foo]: /url "title" "###, DANGER), r###" "###, r###"Links (559)"### ); assert_eq!( micromark_with_options(r###"[foo] bar [foo]: /url "###, DANGER), r###"foo bar
"###, r###"Links (560)"### ); assert_eq!( micromark_with_options(r###"\[foo] [foo]: /url "title" "###, DANGER), r###"[foo]
"###, r###"Links (561)"### ); assert_eq!( micromark_with_options(r###"[foo*]: /url *[foo*] "###, DANGER), r###"*foo*
"###, r###"Links (562)"### ); assert_eq!( micromark_with_options(r###"[foo][bar] [foo]: /url1 [bar]: /url2 "###, DANGER), r###" "###, r###"Links (563)"### ); assert_eq!( micromark_with_options(r###"[foo][] [foo]: /url1 "###, DANGER), r###" "###, r###"Links (564)"### ); assert_eq!( micromark_with_options(r###"[foo]() [foo]: /url1 "###, DANGER), r###" "###, r###"Links (565)"### ); assert_eq!( micromark_with_options(r###"[foo](not a link) [foo]: /url1 "###, DANGER), r###"foo(not a link)
"###, r###"Links (566)"### ); assert_eq!( micromark_with_options(r###"[foo][bar][baz] [baz]: /url "###, DANGER), r###"[foo]bar
"###, r###"Links (567)"### ); assert_eq!( micromark_with_options(r###"[foo][bar][baz] [baz]: /url1 [bar]: /url2 "###, DANGER), r###" "###, r###"Links (568)"### ); assert_eq!( micromark_with_options(r###"[foo][bar][baz] [baz]: /url1 [foo]: /url2 "###, DANGER), r###"[foo]bar
"###, r###"Links (569)"### ); assert_eq!( micromark_with_options(r###"![foo](/url "title") "###, DANGER), r###" "###, r###"Images (570)"### ); assert_eq!( micromark_with_options(r###"![foo *bar*] [foo *bar*]: train.jpg "train & tracks" "###, DANGER), r###" "###, r###"Images (571)"### ); assert_eq!( micromark_with_options(r###"![foo ![bar](/url)](/url2) "###, DANGER), r###" "###, r###"Images (572)"### ); assert_eq!( micromark_with_options(r###"![foo [bar](/url)](/url2) "###, DANGER), r###" "###, r###"Images (573)"### ); assert_eq!( micromark_with_options(r###"![foo *bar*][] [foo *bar*]: train.jpg "train & tracks" "###, DANGER), r###" "###, r###"Images (574)"### ); assert_eq!( micromark_with_options(r###"![foo *bar*][foobar] [FOOBAR]: train.jpg "train & tracks" "###, DANGER), r###" "###, r###"Images (575)"### ); assert_eq!( micromark_with_options(r###"![foo](train.jpg) "###, DANGER), r###" "###, r###"Images (576)"### ); assert_eq!( micromark_with_options(r###"My ![foo bar](/path/to/train.jpg "title" ) "###, DANGER), r###"My
"###, r###"Images (577)"### ); assert_eq!( micromark_with_options(r###"![foo]([]
"###, r###"Images (585)"### ); assert_eq!( micromark_with_options(r###"![foo] [foo]: /url "title" "###, DANGER), r###" "###, r###"Images (586)"### ); assert_eq!( micromark_with_options(r###"![*foo* bar] [*foo* bar]: /url "title" "###, DANGER), r###" "###, r###"Images (587)"### ); assert_eq!( micromark_with_options(r###"![[foo]] [[foo]]: /url "title" "###, DANGER), r###"![[foo]]
[[foo]]: /url "title"
"###, r###"Images (588)"### ); assert_eq!( micromark_with_options(r###"![Foo] [foo]: /url "title" "###, DANGER), r###" "###, r###"Images (589)"### ); assert_eq!( micromark_with_options(r###"!\[foo] [foo]: /url "title" "###, DANGER), r###"![foo]
"###, r###"Images (590)"### ); assert_eq!( micromark_with_options(r###"\![foo] [foo]: /url "title" "###, DANGER), r###"!foo
"###, r###"Images (591)"### ); assert_eq!( micromark_with_options(r###"http://foo.bar.baz/test?q=hello&id=22&boolean
"###, r###"Autolinks (593)"### ); assert_eq!( micromark_with_options(r###"<http://foo.bar/baz bim>
"###, r###"Autolinks (600)"### ); assert_eq!( micromark_with_options(r###"<foo+@bar.example.com>
"###, r###"Autolinks (604)"### ); assert_eq!( micromark_with_options(r###"<> "###, DANGER), r###"<>
"###, r###"Autolinks (605)"### ); assert_eq!( micromark_with_options(r###"< http://foo.bar > "###, DANGER), r###"< http://foo.bar >
"###, r###"Autolinks (606)"### ); assert_eq!( micromark_with_options(r###"<m:abc>
"###, r###"Autolinks (607)"### ); assert_eq!( micromark_with_options(r###"<foo.bar.baz>
"###, r###"Autolinks (608)"### ); assert_eq!( micromark_with_options(r###"http://example.com "###, DANGER), r###"http://example.com
"###, r###"Autolinks (609)"### ); assert_eq!( micromark_with_options(r###"foo@bar.example.com "###, DANGER), r###"foo@bar.example.com
"###, r###"Autolinks (610)"### ); assert_eq!( micromark_with_options(r###"Foo
<33> <__>
"###, r###"Raw HTML (616)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###"<a h*#ref="hi">
"###, r###"Raw HTML (617)"### ); assert_eq!( micromark_with_options(r###"<a href="hi'> <a href=hi'> "###, r###"Raw HTML (618)"### ); assert_eq!( micromark_with_options(r###"< a>< foo>< a>< foo><bar/ > <foo bar=baz bim!bop />
"###, r###"Raw HTML (619)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###"<a href='bar'title=title>
"###, r###"Raw HTML (620)"### ); assert_eq!( micromark_with_options(r###"</a href="foo">
"###, r###"Raw HTML (622)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###"foo
"###, r###"Raw HTML (623)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###"foo <!-- not a comment -- two hyphens -->
"###, r###"Raw HTML (624)"### ); assert_eq!( micromark_with_options(r###"foo foo --> foo "###, DANGER), r###"foo <!--> foo -->
foo <!-- foo--->
"###, r###"Raw HTML (625)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###"foo
"###, r###"Raw HTML (626)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###"foo
"###, r###"Raw HTML (627)"### ); assert_eq!( micromark_with_options(r###"foo &<]]> "###, DANGER), r###"foo &<]]>
"###, r###"Raw HTML (628)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###" "###, r###"Raw HTML (629)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###" "###, r###"Raw HTML (630)"### ); assert_eq!( micromark_with_options(r###" "###, DANGER), r###"<a href=""">
"###, r###"Raw HTML (631)"### ); assert_eq!( micromark_with_options(r###"foo baz "###, DANGER), r###"foo
baz
foo
baz
foo
baz
foo
bar
foo
bar
foo
bar
foo
bar
code span
code\ span
foo\
"###, r###"Hard line breaks (643)"### ); assert_eq!( micromark_with_options(r###"foo "###, DANGER), r###"foo
"###, r###"Hard line breaks (644)"### ); assert_eq!( micromark_with_options(r###"### foo\ "###, DANGER), r###"foo baz
"###, r###"Soft line breaks (647)"### ); assert_eq!( micromark_with_options(r###"foo baz "###, DANGER), r###"foo baz
"###, r###"Soft line breaks (648)"### ); assert_eq!( micromark_with_options(r###"hello $.;'there "###, DANGER), r###"hello $.;'there
"###, r###"Textual content (649)"### ); assert_eq!( micromark_with_options(r###"Foo χρῆν "###, DANGER), r###"Foo χρῆν
"###, r###"Textual content (650)"### ); assert_eq!( micromark_with_options(r###"Multiple spaces "###, DANGER), r###"Multiple spaces
"###, r###"Textual content (651)"### ); }