From 12e8343068b906f8b2afddc5569968a8a91fa5b0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 29 Apr 2024 06:24:24 +0200 Subject: Adding upstream version 2.1.0. Signed-off-by: Daniel Baumann --- tests/test_port/fixtures/commonmark_extras.md | 696 ++ tests/test_port/fixtures/commonmark_spec.md | 7834 ++++++++++++++++++++ tests/test_port/fixtures/fatal.md | 41 + tests/test_port/fixtures/issue-fixes.md | 38 + tests/test_port/fixtures/linkify.md | 99 + tests/test_port/fixtures/normalize.md | 39 + tests/test_port/fixtures/proto.md | 16 + tests/test_port/fixtures/punycode.md | 77 + tests/test_port/fixtures/smartquotes.md | 166 + tests/test_port/fixtures/strikethrough.md | 136 + tests/test_port/fixtures/tables.md | 896 +++ tests/test_port/fixtures/typographer.md | 115 + tests/test_port/fixtures/xss.md | 128 + tests/test_port/test_fixtures.py | 114 + tests/test_port/test_misc.py | 44 + tests/test_port/test_no_end_newline.py | 27 + tests/test_port/test_references.py | 53 + .../test_references/test_inline_definitions.yml | 94 + .../test_references/test_store_labels.yml | 159 + .../test_references/test_use_existing_env.yml | 84 + 20 files changed, 10856 insertions(+) create mode 100644 tests/test_port/fixtures/commonmark_extras.md create mode 100644 tests/test_port/fixtures/commonmark_spec.md create mode 100644 tests/test_port/fixtures/fatal.md create mode 100644 tests/test_port/fixtures/issue-fixes.md create mode 100644 tests/test_port/fixtures/linkify.md create mode 100644 tests/test_port/fixtures/normalize.md create mode 100644 tests/test_port/fixtures/proto.md create mode 100644 tests/test_port/fixtures/punycode.md create mode 100644 tests/test_port/fixtures/smartquotes.md create mode 100644 tests/test_port/fixtures/strikethrough.md create mode 100644 tests/test_port/fixtures/tables.md create mode 100644 tests/test_port/fixtures/typographer.md create mode 100644 tests/test_port/fixtures/xss.md create mode 100644 tests/test_port/test_fixtures.py create mode 100644 tests/test_port/test_misc.py create mode 100644 tests/test_port/test_no_end_newline.py create mode 100644 tests/test_port/test_references.py create mode 100644 tests/test_port/test_references/test_inline_definitions.yml create mode 100644 tests/test_port/test_references/test_store_labels.yml create mode 100644 tests/test_port/test_references/test_use_existing_env.yml (limited to 'tests/test_port') diff --git a/tests/test_port/fixtures/commonmark_extras.md b/tests/test_port/fixtures/commonmark_extras.md new file mode 100644 index 0000000..168b039 --- /dev/null +++ b/tests/test_port/fixtures/commonmark_extras.md @@ -0,0 +1,696 @@ +Issue commonmark/cmark#383: +. +*****Hello*world**** +. +

**Helloworld

+. + +Issue #246. Double escaping in ALT +. +![&](#) +. +

&

+. + +Strip markdown in ALT tags +. +![*strip* [markdown __in__ alt](#)](#) +. +

strip markdown in alt

+. + +Issue #55: +. +![test] + +![test](foo bar) +. +

![test]

+

![test](foo bar)

+. + + +Reference labels: 'i̇θωkå'.toUpperCase() is 'İΘΩKÅ', but these should still be equivalent +. +[İϴΩKÅ] + +[i̇θωkå]: /url +. +

İϴΩKÅ

+. + + +Reference labels: support ligatures (equivalent according to unicode case folding) +. +[fffifl] + +[fffifl]: /url +. +

fffifl

+. + + +Issue #35. `<` should work as punctuation +. +an **(:**
+. +

an (:

+. + + +Should unescape only needed things in link destinations/titles: +. +[test](<\f\o\o\>\\>) + +[test](foo "\\\"\b\a\r") +. +

test

+

test

+. + + +Not a closing tag +. + +. +

</ 123>

+. + + + +Escaping entities in links: +. +[](<"> "&ö") + +[](<\"> "\&\ö") + +[](<\\"> "\\"\\ö") +. +

+

+

+. + + +Checking combination of replaceEntities and unescapeMd: +. +~~~ &&bad;\&\\& +just a funny little fence +~~~ +. +
just a funny little fence
+
+. + +Underscore between punctuation chars should be able to close emphasis. + +. +_(hai)_. +. +

(hai).

+. + +Regression test, should not match emphasis markers in different link tags: +. +[*b]() [c*]() +. +

*b c*

+. + +Those are two separate blockquotes: +. + - > foo + > bar +. + +
+

bar

+
+. + +Blockquote should terminate itself after paragraph continuation +. +- list + > blockquote +blockquote continuation + - next list item +. + +. + +Regression test (code block + regular paragraph) +. +> foo +> bar +. +
+
foo
+
+

bar

+
+. + +Blockquotes inside indented lists should terminate correctly +. + - a + > b + ``` + c + ``` + - d +. + +. + +Don't output empty class here: +. +``` +test +``` +. +
test
+
+. + +Setext header text supports lazy continuations: +. + - foo +bar + === +. + +. + +But setext header underline doesn't: +. + - foo + bar + === +. + +. + +Tabs should be stripped from the beginning of the line +. + foo + bar + baz +. +

foo +bar +baz

+. + +Tabs should not cause hardbreak, EOL tabs aren't stripped in commonmark 0.27 +. +foo1 +foo2 +bar +. +

foo1 +foo2
+bar

+. + +List item terminating quote should not be paragraph continuation +. +1. foo + > quote +2. bar +. +
    +
  1. foo +
    +

    quote

    +
    +
  2. +
  3. bar
  4. +
+. + +Escaped space is not allowed in link destination, commonmark/CommonMark#493. +. +[link](a\ b) +. +

[link](a\ b)

+. + +Link destination cannot contain '<' +. +[]() + +[]() +. +

[](<foo)

+

+. + +Link title cannot contain '(' when opened with it +. +[](url (xxx()) + +[](url (xxx\()) +. +

[](url (xxx())

+

+. + +Allow EOL in processing instructions, commonmark/commonmark.js#196. +. +a +. +

a

+. + +Allow meta tag in an inline context, commonmark/commonmark-spec#527. +. +City: + + + +. +

City: + + +

+. + +Coverage. Directive can terminate paragraph. +. +a +a

+* +. +

foo@bar.com

+. + + +Coverage. Unpaired nested backtick (silent mode) +. +*`foo* +. +

`foo

+. + + +Coverage. Should continue scanning after closing "```" despite cache +. +```aaa``bbb``ccc```ddd``eee`` +. +

aaa``bbb``cccdddeee

+. + + +Coverage. Entities. +. +*&* + +* * + +*&* +. +

&

+

+

&

+. + + +Coverage. Escape. +. +*\a* +. +

\a

+. + + +Coverage. parseLinkDestination +. +[foo](< +bar>) + +[foo]([foo](< +bar>)

+

[foo](<bar)

+. + + +Coverage. parseLinkTitle +. +[foo](bar "ba) + +[foo](bar "ba\ +z") +. +

[foo](bar "ba)

+

foo

+. + + +Coverage. Image +. +![test]( x ) +. +

test

+. +. +![test][foo] + +[bar]: 123 +. +

![test][foo]

+. +. +![test][[[ + +[bar]: 123 +. +

![test][[[

+. +. +![test]( +. +

![test](

+. + + +Coverage. Link +. +[test]( +. +

[test](

+. + + +Coverage. Reference +. +[ +test\ +]: 123 +foo +bar +. +

foo +bar

+. +. +[ +test +] +. +

[ +test +]

+. +. +> [foo]: bar +[foo] +. +
+

foo

+. + +Coverage. Tabs in blockquotes. +. +> test + + > test + + > test + +> --- +> test + + > --- + > test + + > --- + > test + +> test + + > test + + > test + +> --- +> test + + > --- + > test + + > --- + > test +. +
+
  test
+
+
+
+
 test
+
+
+
+
test
+
+
+
+
+
  test
+
+
+
+
+
 test
+
+
+
+
+
test
+
+
+
+
  	test
+
+
+
+
 	test
+
+
+
+
	test
+
+
+
+
+
  	test
+
+
+
+
+
 	test
+
+
+
+
+
	test
+
+
+. + +Coverage. Tabs in lists. +. +1. foo + + bar +. +
    +
  1. +

    foo

    +
     bar
    +
    +
  2. +
+. + +Coverage. Various tags not interrupting blockquotes because of indentation: +. +> foo + - - - - + +> foo + # not a heading +. +
+

foo +- - - -

+
+
+

foo +# not a heading

+
+. + +Coverage, entities with code > 10FFFF. Made this way for compatibility with commonmark.js. +. +� + +� +. +

+

&#x1100000;

+. + +Issue #696. Blockquotes should remember their level. +. +>>> foo +bar +>>> baz +. +
+
+
+

foo +bar +baz

+
+
+
+. + +Issue #696. Blockquotes should stop when outdented from a list. +. +1. >>> foo + bar +baz + >>> foo + >>> bar + >>> baz +. +
    +
  1. +
    +
    +
    +

    foo +bar +baz +foo

    +
    +
    +
    +
  2. +
+
+
+
+

bar +baz

+
+
+
+. + +Newline in image description +. +There is a newline in this image ![here +it is](https://github.com/executablebooks/) +. +

There is a newline in this image here
+it is

+. + +Issue #772. Header rule should not interfere with html tags. +. + + +
+==
+
+. + +
+==
+
+. + +Issue #205. Space in link destination generates IndexError +. +[Contact](http:// mail.com) + +[Contact](mailto: mail@mail.com) +. +

[Contact](http:// mail.com)

+

[Contact](mailto: mail@mail.com)

+. + +Issue #204. Combination of blockquotes, list and newlines causes an IndexError +. +> QUOTE ++ UNORDERED LIST ITEM + > INDENTED QUOTE + + + +. +
+

QUOTE

+
+
    +
  • UNORDERED LIST ITEM +
    +

    INDENTED QUOTE

    +
    +
  • +
+. diff --git a/tests/test_port/fixtures/commonmark_spec.md b/tests/test_port/fixtures/commonmark_spec.md new file mode 100644 index 0000000..c437019 --- /dev/null +++ b/tests/test_port/fixtures/commonmark_spec.md @@ -0,0 +1,7834 @@ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 355 + +. + foo baz bim +. +
foo	baz		bim
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 362 + +. + foo baz bim +. +
foo	baz		bim
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 369 + +. + a a + ὐ a +. +
a	a
+ὐ	a
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 382 + +. + - foo + + bar +. +
    +
  • +

    foo

    +

    bar

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 395 + +. +- foo + + bar +. +
    +
  • +

    foo

    +
      bar
    +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 418 + +. +> foo +. +
+
  foo
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 427 + +. +- foo +. +
    +
  • +
      foo
    +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 439 + +. + foo + bar +. +
foo
+bar
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 448 + +. + - foo + - bar + - baz +. +
    +
  • foo +
      +
    • bar +
        +
      • baz
      • +
      +
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 466 + +. +# Foo +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 472 + +. +* * * +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 489 + +. +\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ +. +

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 499 + +. +\ \A\a\ \3\φ\« +. +

\ \A\a\ \3\φ\«

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 509 + +. +\*not emphasized* +\
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 +. +

*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" +&ouml; not a character entity

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 534 + +. +\\*emphasis* +. +

\emphasis

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 543 + +. +foo\ +bar +. +

foo
+bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 555 + +. +`` \[\` `` +. +

\[\`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 562 + +. + \[\] +. +
\[\]
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 570 + +. +~~~ +\[\] +~~~ +. +
\[\]
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 580 + +. + +. +

http://example.com?find=\*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 587 + +. + +. + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 597 + +. +[foo](/bar\* "ti\*tle") +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 604 + +. +[foo] + +[foo]: /bar\* "ti\*tle" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 613 + +. +``` foo\+bar +foo +``` +. +
foo
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 649 + +. +  & © Æ Ď +¾ ℋ ⅆ +∲ ≧̸ +. +

  & © Æ Ď +¾ ℋ ⅆ +∲ ≧̸

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 668 + +. +# Ӓ Ϡ � +. +

# Ӓ Ϡ �

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 681 + +. +" ആ ಫ +. +

" ആ ಫ

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 690 + +. +  &x; &#; &#x; +� +&#abcdef0; +&ThisIsNotDefined; &hi?; +. +

&nbsp &x; &#; &#x; +&#87654321; +&#abcdef0; +&ThisIsNotDefined; &hi?;

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 707 + +. +© +. +

&copy

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 717 + +. +&MadeUpEntity; +. +

&MadeUpEntity;

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 728 + +. + +. + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 735 + +. +[foo](/föö "föö") +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 742 + +. +[foo] + +[foo]: /föö "föö" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 751 + +. +``` föö +foo +``` +. +
foo
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 764 + +. +`föö` +. +

f&ouml;&ouml;

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 771 + +. + föfö +. +
f&ouml;f&ouml;
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 783 + +. +*foo* +*foo* +. +

*foo* +foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 791 + +. +* foo + +* foo +. +

* foo

+
    +
  • foo
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 802 + +. +foo bar +. +

foo + +bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 810 + +. + foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 817 + +. +[a](url "tit") +. +

[a](url "tit")

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 840 + +. +- `one +- two` +. +
    +
  • `one
  • +
  • two`
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 879 + +. +*** +--- +___ +. +
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 892 + +. ++++ +. +

+++

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 899 + +. +=== +. +

===

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 908 + +. +-- +** +__ +. +

-- +** +__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 921 + +. + *** + *** + *** +. +
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 934 + +. + *** +. +
***
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 942 + +. +Foo + *** +. +

Foo +***

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 953 + +. +_____________________________________ +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 962 + +. + - - - +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 969 + +. + ** * ** * ** * ** +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 976 + +. +- - - - +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 985 + +. +- - - - +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 994 + +. +_ _ _ _ a + +a------ + +---a--- +. +

_ _ _ _ a

+

a------

+

---a---

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1010 + +. + *-* +. +

-

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1019 + +. +- foo +*** +- bar +. +
    +
  • foo
  • +
+
+
    +
  • bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1036 + +. +Foo +*** +bar +. +

Foo

+
+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1053 + +. +Foo +--- +bar +. +

Foo

+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1066 + +. +* Foo +* * * +* Bar +. +
    +
  • Foo
  • +
+
+
    +
  • Bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1083 + +. +- Foo +- * * * +. +
    +
  • Foo
  • +
  • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1112 + +. +# foo +## foo +### foo +#### foo +##### foo +###### foo +. +

foo

+

foo

+

foo

+

foo

+
foo
+
foo
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1131 + +. +####### foo +. +

####### foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1146 + +. +#5 bolt + +#hashtag +. +

#5 bolt

+

#hashtag

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1158 + +. +\## foo +. +

## foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1167 + +. +# foo *bar* \*baz\* +. +

foo bar *baz*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1176 + +. +# foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1185 + +. + ### foo + ## foo + # foo +. +

foo

+

foo

+

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1198 + +. + # foo +. +
# foo
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1206 + +. +foo + # bar +. +

foo +# bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1217 + +. +## foo ## + ### bar ### +. +

foo

+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1228 + +. +# foo ################################## +##### foo ## +. +

foo

+
foo
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1239 + +. +### foo ### +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1250 + +. +### foo ### b +. +

foo ### b

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1259 + +. +# foo# +. +

foo#

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1269 + +. +### foo \### +## foo #\## +# foo \# +. +

foo ###

+

foo ###

+

foo #

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1283 + +. +**** +## foo +**** +. +
+

foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1294 + +. +Foo bar +# baz +Bar foo +. +

Foo bar

+

baz

+

Bar foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1307 + +. +## +# +### ### +. +

+

+

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1350 + +. +Foo *bar* +========= + +Foo *bar* +--------- +. +

Foo bar

+

Foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1364 + +. +Foo *bar +baz* +==== +. +

Foo bar +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1378 + +. + Foo *bar +baz* +==== +. +

Foo bar +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1390 + +. +Foo +------------------------- + +Foo += +. +

Foo

+

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1405 + +. + Foo +--- + + Foo +----- + + Foo + === +. +

Foo

+

Foo

+

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1423 + +. + Foo + --- + + Foo +--- +. +
Foo
+---
+
+Foo
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1442 + +. +Foo + ---- +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1452 + +. +Foo + --- +. +

Foo +---

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1463 + +. +Foo += = + +Foo +--- - +. +

Foo += =

+

Foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1479 + +. +Foo +----- +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1489 + +. +Foo\ +---- +. +

Foo\

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1500 + +. +`Foo +---- +` + + +. +

`Foo

+

`

+

<a title="a lot

+

of dashes"/>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1519 + +. +> Foo +--- +. +
+

Foo

+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1530 + +. +> foo +bar +=== +. +
+

foo +bar +===

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1543 + +. +- Foo +--- +. +
    +
  • Foo
  • +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1558 + +. +Foo +Bar +--- +. +

Foo +Bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1571 + +. +--- +Foo +--- +Bar +--- +Baz +. +
+

Foo

+

Bar

+

Baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1588 + +. + +==== +. +

====

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1600 + +. +--- +--- +. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1609 + +. +- foo +----- +. +
    +
  • foo
  • +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1620 + +. + foo +--- +. +
foo
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1630 + +. +> foo +----- +. +
+

foo

+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1644 + +. +\> foo +------ +. +

> foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1675 + +. +Foo + +bar +--- +baz +. +

Foo

+

bar

+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1691 + +. +Foo +bar + +--- + +baz +. +

Foo +bar

+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1709 + +. +Foo +bar +* * * +baz +. +

Foo +bar

+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1724 + +. +Foo +bar +\--- +baz +. +

Foo +bar +--- +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1752 + +. + a simple + indented code block +. +
a simple
+  indented code block
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1766 + +. + - foo + + bar +. +
    +
  • +

    foo

    +

    bar

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1780 + +. +1. foo + + - bar +. +
    +
  1. +

    foo

    +
      +
    • bar
    • +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1800 + +. +
+ *hi* + + - one +. +
<a/>
+*hi*
+
+- one
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1816 + +. + chunk1 + + chunk2 + + + + chunk3 +. +
chunk1
+
+chunk2
+
+
+
+chunk3
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1839 + +. + chunk1 + + chunk2 +. +
chunk1
+  
+  chunk2
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1854 + +. +Foo + bar + +. +

Foo +bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1868 + +. + foo +bar +. +
foo
+
+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1881 + +. +# Heading + foo +Heading +------ + foo +---- +. +

Heading

+
foo
+
+

Heading

+
foo
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1901 + +. + foo + bar +. +
    foo
+bar
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1914 + +. + + + foo + + +. +
foo
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1928 + +. + foo +. +
foo  
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1983 + +. +``` +< + > +``` +. +
<
+ >
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 1997 + +. +~~~ +< + > +~~~ +. +
<
+ >
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2010 + +. +`` +foo +`` +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2021 + +. +``` +aaa +~~~ +``` +. +
aaa
+~~~
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2033 + +. +~~~ +aaa +``` +~~~ +. +
aaa
+```
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2047 + +. +```` +aaa +``` +`````` +. +
aaa
+```
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2059 + +. +~~~~ +aaa +~~~ +~~~~ +. +
aaa
+~~~
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2074 + +. +``` +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2081 + +. +````` + +``` +aaa +. +

+```
+aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2094 + +. +> ``` +> aaa + +bbb +. +
+
aaa
+
+
+

bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2110 + +. +``` + + +``` +. +

+  
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2124 + +. +``` +``` +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2136 + +. + ``` + aaa +aaa +``` +. +
aaa
+aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2148 + +. + ``` +aaa + aaa +aaa + ``` +. +
aaa
+aaa
+aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2162 + +. + ``` + aaa + aaa + aaa + ``` +. +
aaa
+ aaa
+aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2178 + +. + ``` + aaa + ``` +. +
```
+aaa
+```
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2193 + +. +``` +aaa + ``` +. +
aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2203 + +. + ``` +aaa + ``` +. +
aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2215 + +. +``` +aaa + ``` +. +
aaa
+    ```
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2229 + +. +``` ``` +aaa +. +

+aaa

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2238 + +. +~~~~~~ +aaa +~~~ ~~ +. +
aaa
+~~~ ~~
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2252 + +. +foo +``` +bar +``` +baz +. +

foo

+
bar
+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2269 + +. +foo +--- +~~~ +bar +~~~ +# baz +. +

foo

+
bar
+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2291 + +. +```ruby +def foo(x) + return 3 +end +``` +. +
def foo(x)
+  return 3
+end
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2305 + +. +~~~~ ruby startline=3 $%@#$ +def foo(x) + return 3 +end +~~~~~~~ +. +
def foo(x)
+  return 3
+end
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2319 + +. +````; +```` +. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2329 + +. +``` aa ``` +foo +. +

aa +foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2340 + +. +~~~ aa ``` ~~~ +foo +~~~ +. +
foo
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2352 + +. +``` +``` aaa +``` +. +
``` aaa
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2431 + +. +
+
+**Hello**,
+
+_world_.
+
+
+. +
+
+**Hello**,
+

world. +

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2460 + +. + + + + +
+ hi +
+ +okay. +. + + + + +
+ hi +
+

okay.

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2482 + +. +
+*foo* +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2506 + +. +
+ +*Markdown* + +
+. +
+

Markdown

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2522 + +. +
+
+. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2533 + +. +
+
+. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2545 + +. +
+*foo* + +*bar* +. +
+*foo* +

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2561 + +. +
+. + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2601 + +. +
+foo +
+. +
+foo +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2618 + +. +
+``` c +int x = 33; +``` +. +
+``` c +int x = 33; +``` +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2635 + +. + +*bar* + +. + +*bar* + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2648 + +. + +*bar* + +. + +*bar* + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2659 + +. + +*bar* + +. + +*bar* + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2670 + +. + +*bar* +. + +*bar* +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2685 + +. + +*foo* + +. + +*foo* + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2700 + +. + + +*foo* + + +. + +

foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2718 + +. +*foo* +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2734 + +. +

+import Text.HTML.TagSoup
+
+main :: IO ()
+main = print $ parseTags tags
+
+okay +. +

+import Text.HTML.TagSoup
+
+main :: IO ()
+main = print $ parseTags tags
+
+

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2755 + +. + +okay +. + +

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2774 + +. + +. + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2794 + +. + +okay +. + +

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2817 + +. + +*foo* +. + +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2868 + +. +*bar* +*baz* +. +*bar* +

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2880 + +. +1. *bar* +. +1. *bar* +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2893 + +. + +okay +. + +

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2911 + +. +'; + +?> +okay +. +'; + +?> +

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2930 + +. + +. + +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2939 + +. + +okay +. + +

okay

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2973 + +. + + + +. + +
<!-- foo -->
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2984 + +. +
+ +
+. +
+
<div>
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2998 + +. +Foo +
+bar +
+. +

Foo

+
+bar +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3015 + +. +
+bar +
+*foo* +. +
+bar +
+*foo* +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3030 + +. +Foo + +baz +. +

Foo + +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3071 + +. +
+ +*Emphasized* text. + +
+. +
+

Emphasized text.

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3084 + +. +
+*Emphasized* text. +
+. +
+*Emphasized* text. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3106 + +. + + + + + + + + +
+Hi +
+. + + + + +
+Hi +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3133 + +. + + + + + + + + +
+ Hi +
+. + + +
<td>
+  Hi
+</td>
+
+ +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3182 + +. +[foo]: /url "title" + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3191 + +. + [foo]: + /url + 'the title' + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3202 + +. +[Foo*bar\]]:my_(url) 'title (with parens)' + +[Foo*bar\]] +. +

Foo*bar]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3211 + +. +[Foo bar]: + +'title' + +[Foo bar] +. +

Foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3224 + +. +[foo]: /url ' +title +line1 +line2 +' + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3243 + +. +[foo]: /url 'title + +with blank line' + +[foo] +. +

[foo]: /url 'title

+

with blank line'

+

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3258 + +. +[foo]: +/url + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3270 + +. +[foo]: + +[foo] +. +

[foo]:

+

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3282 + +. +[foo]: <> + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3293 + +. +[foo]: (baz) + +[foo] +. +

[foo]: (baz)

+

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3306 + +. +[foo]: /url\bar\*baz "foo\"bar\baz" + +[foo] +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3317 + +. +[foo] + +[foo]: url +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3329 + +. +[foo] + +[foo]: first +[foo]: second +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3342 + +. +[FOO]: /url + +[Foo] +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3351 + +. +[ΑΓΩ]: /φου + +[αγω] +. +

αγω

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3366 + +. +[foo]: /url +. +. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3374 + +. +[ +foo +]: /url +bar +. +

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3387 + +. +[foo]: /url "title" ok +. +

[foo]: /url "title" ok

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3396 + +. +[foo]: /url +"title" ok +. +

"title" ok

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3407 + +. + [foo]: /url "title" + +[foo] +. +
[foo]: /url "title"
+
+

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3421 + +. +``` +[foo]: /url +``` + +[foo] +. +
[foo]: /url
+
+

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3436 + +. +Foo +[bar]: /baz + +[bar] +. +

Foo +[bar]: /baz

+

[bar]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3451 + +. +# [Foo] +[foo]: /url +> bar +. +

Foo

+
+

bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3462 + +. +[foo]: /url +bar +=== +[foo] +. +

bar

+

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3472 + +. +[foo]: /url +=== +[foo] +. +

=== +foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3485 + +. +[foo]: /foo-url "foo" +[bar]: /bar-url + "bar" +[baz]: /baz-url + +[foo], +[bar], +[baz] +. +

foo, +bar, +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3506 + +. +[foo] + +> [foo]: /url +. +

foo

+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3528 + +. +aaa + +bbb +. +

aaa

+

bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3540 + +. +aaa +bbb + +ccc +ddd +. +

aaa +bbb

+

ccc +ddd

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3556 + +. +aaa + + +bbb +. +

aaa

+

bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3569 + +. + aaa + bbb +. +

aaa +bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3581 + +. +aaa + bbb + ccc +. +

aaa +bbb +ccc

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3595 + +. + aaa +bbb +. +

aaa +bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3604 + +. + aaa +bbb +. +
aaa
+
+

bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3618 + +. +aaa +bbb +. +

aaa
+bbb

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3635 + +. + + +aaa + + +# aaa + + +. +

aaa

+

aaa

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3703 + +. +> # Foo +> bar +> baz +. +
+

Foo

+

bar +baz

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3718 + +. +># Foo +>bar +> baz +. +
+

Foo

+

bar +baz

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3733 + +. + > # Foo + > bar + > baz +. +
+

Foo

+

bar +baz

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3748 + +. + > # Foo + > bar + > baz +. +
> # Foo
+> bar
+> baz
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3763 + +. +> # Foo +> bar +baz +. +
+

Foo

+

bar +baz

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3779 + +. +> bar +baz +> foo +. +
+

bar +baz +foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3803 + +. +> foo +--- +. +
+

foo

+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3823 + +. +> - foo +- bar +. +
+
    +
  • foo
  • +
+
+
    +
  • bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3841 + +. +> foo + bar +. +
+
foo
+
+
+
bar
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3854 + +. +> ``` +foo +``` +. +
+
+
+

foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3870 + +. +> foo + - bar +. +
+

foo +- bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3894 + +. +> +. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3902 + +. +> +> +> +. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3914 + +. +> +> foo +> +. +
+

foo

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3927 + +. +> foo + +> bar +. +
+

foo

+
+
+

bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3949 + +. +> foo +> bar +. +
+

foo +bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3962 + +. +> foo +> +> bar +. +
+

foo

+

bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3976 + +. +foo +> bar +. +

foo

+
+

bar

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3990 + +. +> aaa +*** +> bbb +. +
+

aaa

+
+
+
+

bbb

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4008 + +. +> bar +baz +. +
+

bar +baz

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4019 + +. +> bar + +baz +. +
+

bar

+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4031 + +. +> bar +> +baz +. +
+

bar

+
+

baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4047 + +. +> > > foo +bar +. +
+
+
+

foo +bar

+
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4062 + +. +>>> foo +> bar +>>baz +. +
+
+
+

foo +bar +baz

+
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4084 + +. +> code + +> not code +. +
+
code
+
+
+
+

not code

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4138 + +. +A paragraph +with two lines. + + indented code + +> A block quote. +. +

A paragraph +with two lines.

+
indented code
+
+
+

A block quote.

+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4160 + +. +1. A paragraph + with two lines. + + indented code + + > A block quote. +. +
    +
  1. +

    A paragraph +with two lines.

    +
    indented code
    +
    +
    +

    A block quote.

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4193 + +. +- one + + two +. +
    +
  • one
  • +
+

two

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4205 + +. +- one + + two +. +
    +
  • +

    one

    +

    two

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4219 + +. + - one + + two +. +
    +
  • one
  • +
+
 two
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4232 + +. + - one + + two +. +
    +
  • +

    one

    +

    two

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4254 + +. + > > 1. one +>> +>> two +. +
+
+
    +
  1. +

    one

    +

    two

    +
  2. +
+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4281 + +. +>>- one +>> + > > two +. +
+
+
    +
  • one
  • +
+

two

+
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4300 + +. +-one + +2.two +. +

-one

+

2.two

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4313 + +. +- foo + + + bar +. +
    +
  • +

    foo

    +

    bar

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4330 + +. +1. foo + + ``` + bar + ``` + + baz + + > bam +. +
    +
  1. +

    foo

    +
    bar
    +
    +

    baz

    +
    +

    bam

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4358 + +. +- Foo + + bar + + + baz +. +
    +
  • +

    Foo

    +
    bar
    +
    +
    +baz
    +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4380 + +. +123456789. ok +. +
    +
  1. ok
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4389 + +. +1234567890. not ok +. +

1234567890. not ok

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4398 + +. +0. ok +. +
    +
  1. ok
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4407 + +. +003. ok +. +
    +
  1. ok
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4418 + +. +-1. not ok +. +

-1. not ok

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4441 + +. +- foo + + bar +. +
    +
  • +

    foo

    +
    bar
    +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4458 + +. + 10. foo + + bar +. +
    +
  1. +

    foo

    +
    bar
    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4477 + +. + indented code + +paragraph + + more code +. +
indented code
+
+

paragraph

+
more code
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4492 + +. +1. indented code + + paragraph + + more code +. +
    +
  1. +
    indented code
    +
    +

    paragraph

    +
    more code
    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4514 + +. +1. indented code + + paragraph + + more code +. +
    +
  1. +
     indented code
    +
    +

    paragraph

    +
    more code
    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4541 + +. + foo + +bar +. +

foo

+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4551 + +. +- foo + + bar +. +
    +
  • foo
  • +
+

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4568 + +. +- foo + + bar +. +
    +
  • +

    foo

    +

    bar

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4595 + +. +- + foo +- + ``` + bar + ``` +- + baz +. +
    +
  • foo
  • +
  • +
    bar
    +
    +
  • +
  • +
    baz
    +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4621 + +. +- + foo +. +
    +
  • foo
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4635 + +. +- + + foo +. +
    +
  • +
+

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4649 + +. +- foo +- +- bar +. +
    +
  • foo
  • +
  • +
  • bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4664 + +. +- foo +- +- bar +. +
    +
  • foo
  • +
  • +
  • bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4679 + +. +1. foo +2. +3. bar +. +
    +
  1. foo
  2. +
  3. +
  4. bar
  5. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4694 + +. +* +. +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4704 + +. +foo +* + +foo +1. +. +

foo +*

+

foo +1.

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4726 + +. + 1. A paragraph + with two lines. + + indented code + + > A block quote. +. +
    +
  1. +

    A paragraph +with two lines.

    +
    indented code
    +
    +
    +

    A block quote.

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4750 + +. + 1. A paragraph + with two lines. + + indented code + + > A block quote. +. +
    +
  1. +

    A paragraph +with two lines.

    +
    indented code
    +
    +
    +

    A block quote.

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4774 + +. + 1. A paragraph + with two lines. + + indented code + + > A block quote. +. +
    +
  1. +

    A paragraph +with two lines.

    +
    indented code
    +
    +
    +

    A block quote.

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4798 + +. + 1. A paragraph + with two lines. + + indented code + + > A block quote. +. +
1.  A paragraph
+    with two lines.
+
+        indented code
+
+    > A block quote.
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4828 + +. + 1. A paragraph +with two lines. + + indented code + + > A block quote. +. +
    +
  1. +

    A paragraph +with two lines.

    +
    indented code
    +
    +
    +

    A block quote.

    +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4852 + +. + 1. A paragraph + with two lines. +. +
    +
  1. A paragraph +with two lines.
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4865 + +. +> 1. > Blockquote +continued here. +. +
+
    +
  1. +
    +

    Blockquote +continued here.

    +
    +
  2. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4882 + +. +> 1. > Blockquote +> continued here. +. +
+
    +
  1. +
    +

    Blockquote +continued here.

    +
    +
  2. +
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4910 + +. +- foo + - bar + - baz + - boo +. +
    +
  • foo +
      +
    • bar +
        +
      • baz +
          +
        • boo
        • +
        +
      • +
      +
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4936 + +. +- foo + - bar + - baz + - boo +. +
    +
  • foo
  • +
  • bar
  • +
  • baz
  • +
  • boo
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4953 + +. +10) foo + - bar +. +
    +
  1. foo +
      +
    • bar
    • +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4969 + +. +10) foo + - bar +. +
    +
  1. foo
  2. +
+
    +
  • bar
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4984 + +. +- - foo +. +
    +
  • +
      +
    • foo
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4997 + +. +1. - 2. foo +. +
    +
  1. +
      +
    • +
        +
      1. foo
      2. +
      +
    • +
    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5016 + +. +- # Foo +- Bar + --- + baz +. +
    +
  • +

    Foo

    +
  • +
  • +

    Bar

    +baz
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5252 + +. +- foo +- bar ++ baz +. +
    +
  • foo
  • +
  • bar
  • +
+
    +
  • baz
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5267 + +. +1. foo +2. bar +3) baz +. +
    +
  1. foo
  2. +
  3. bar
  4. +
+
    +
  1. baz
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5286 + +. +Foo +- bar +- baz +. +

Foo

+
    +
  • bar
  • +
  • baz
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5363 + +. +The number of windows in my house is +14. The number of doors is 6. +. +

The number of windows in my house is +14. The number of doors is 6.

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5373 + +. +The number of windows in my house is +1. The number of doors is 6. +. +

The number of windows in my house is

+
    +
  1. The number of doors is 6.
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5387 + +. +- foo + +- bar + + +- baz +. +
    +
  • +

    foo

    +
  • +
  • +

    bar

    +
  • +
  • +

    baz

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5408 + +. +- foo + - bar + - baz + + + bim +. +
    +
  • foo +
      +
    • bar +
        +
      • +

        baz

        +

        bim

        +
      • +
      +
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5438 + +. +- foo +- bar + + + +- baz +- bim +. +
    +
  • foo
  • +
  • bar
  • +
+ +
    +
  • baz
  • +
  • bim
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5459 + +. +- foo + + notcode + +- foo + + + + code +. +
    +
  • +

    foo

    +

    notcode

    +
  • +
  • +

    foo

    +
  • +
+ +
code
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5490 + +. +- a + - b + - c + - d + - e + - f +- g +. +
    +
  • a
  • +
  • b
  • +
  • c
  • +
  • d
  • +
  • e
  • +
  • f
  • +
  • g
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5511 + +. +1. a + + 2. b + + 3. c +. +
    +
  1. +

    a

    +
  2. +
  3. +

    b

    +
  4. +
  5. +

    c

    +
  6. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5535 + +. +- a + - b + - c + - d + - e +. +
    +
  • a
  • +
  • b
  • +
  • c
  • +
  • d +- e
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5555 + +. +1. a + + 2. b + + 3. c +. +
    +
  1. +

    a

    +
  2. +
  3. +

    b

    +
  4. +
+
3. c
+
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5578 + +. +- a +- b + +- c +. +
    +
  • +

    a

    +
  • +
  • +

    b

    +
  • +
  • +

    c

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5600 + +. +* a +* + +* c +. +
    +
  • +

    a

    +
  • +
  • +
  • +

    c

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5622 + +. +- a +- b + + c +- d +. +
    +
  • +

    a

    +
  • +
  • +

    b

    +

    c

    +
  • +
  • +

    d

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5644 + +. +- a +- b + + [ref]: /url +- d +. +
    +
  • +

    a

    +
  • +
  • +

    b

    +
  • +
  • +

    d

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5667 + +. +- a +- ``` + b + + + ``` +- c +. +
    +
  • a
  • +
  • +
    b
    +
    +
    +
    +
  • +
  • c
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5693 + +. +- a + - b + + c +- d +. +
    +
  • a +
      +
    • +

      b

      +

      c

      +
    • +
    +
  • +
  • d
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5717 + +. +* a + > b + > +* c +. +
    +
  • a +
    +

    b

    +
    +
  • +
  • c
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5737 + +. +- a + > b + ``` + c + ``` +- d +. +
    +
  • a +
    +

    b

    +
    +
    c
    +
    +
  • +
  • d
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5760 + +. +- a +. +
    +
  • a
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5769 + +. +- a + - b +. +
    +
  • a +
      +
    • b
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5786 + +. +1. ``` + foo + ``` + + bar +. +
    +
  1. +
    foo
    +
    +

    bar

    +
  2. +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5805 + +. +* foo + * bar + + baz +. +
    +
  • +

    foo

    +
      +
    • bar
    • +
    +

    baz

    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5823 + +. +- a + - b + - c + +- d + - e + - f +. +
    +
  • +

    a

    +
      +
    • b
    • +
    • c
    • +
    +
  • +
  • +

    d

    +
      +
    • e
    • +
    • f
    • +
    +
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5857 + +. +`hi`lo` +. +

hilo`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5889 + +. +`foo` +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5900 + +. +`` foo ` bar `` +. +

foo ` bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5910 + +. +` `` ` +. +

``

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5918 + +. +` `` ` +. +

``

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5927 + +. +` a` +. +

a

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5936 + +. +` b ` +. +

 b 

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5944 + +. +` ` +` ` +. +

  +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5955 + +. +`` +foo +bar +baz +`` +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5965 + +. +`` +foo +`` +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5976 + +. +`foo bar +baz` +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5993 + +. +`foo\`bar` +. +

foo\bar`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6004 + +. +``foo`bar`` +. +

foo`bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6010 + +. +` foo `` bar ` +. +

foo `` bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6022 + +. +*foo`*` +. +

*foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6031 + +. +[not a `link](/foo`) +. +

[not a link](/foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6041 + +. +`` +. +

<a href="">`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6050 + +. +
` +. +

`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6059 + +. +`` +. +

<http://foo.bar.baz>`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6068 + +. +` +. +

http://foo.bar.`baz`

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6078 + +. +```foo`` +. +

```foo``

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6085 + +. +`foo +. +

`foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6094 + +. +`foo``bar`` +. +

`foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6311 + +. +*foo bar* +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6321 + +. +a * foo bar* +. +

a * foo bar*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6332 + +. +a*"foo"* +. +

a*"foo"*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6341 + +. +* a * +. +

* a *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6350 + +. +foo*bar* +. +

foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6357 + +. +5*6*78 +. +

5678

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6366 + +. +_foo bar_ +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6376 + +. +_ foo bar_ +. +

_ foo bar_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6386 + +. +a_"foo"_ +. +

a_"foo"_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6395 + +. +foo_bar_ +. +

foo_bar_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6402 + +. +5_6_78 +. +

5_6_78

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6409 + +. +пристаням_стремятся_ +. +

пристаням_стремятся_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6419 + +. +aa_"bb"_cc +. +

aa_"bb"_cc

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6430 + +. +foo-_(bar)_ +. +

foo-(bar)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6442 + +. +_foo* +. +

_foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6452 + +. +*foo bar * +. +

*foo bar *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6461 + +. +*foo bar +* +. +

*foo bar +*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6474 + +. +*(*foo) +. +

*(*foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6484 + +. +*(*foo*)* +. +

(foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6493 + +. +*foo*bar +. +

foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6506 + +. +_foo bar _ +. +

_foo bar _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6516 + +. +_(_foo) +. +

_(_foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6525 + +. +_(_foo_)_ +. +

(foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6534 + +. +_foo_bar +. +

_foo_bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6541 + +. +_пристаням_стремятся +. +

_пристаням_стремятся

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6548 + +. +_foo_bar_baz_ +. +

foo_bar_baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6559 + +. +_(bar)_. +. +

(bar).

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6568 + +. +**foo bar** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6578 + +. +** foo bar** +. +

** foo bar**

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6589 + +. +a**"foo"** +. +

a**"foo"**

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6598 + +. +foo**bar** +. +

foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6607 + +. +__foo bar__ +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6617 + +. +__ foo bar__ +. +

__ foo bar__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6625 + +. +__ +foo bar__ +. +

__ +foo bar__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6637 + +. +a__"foo"__ +. +

a__"foo"__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6646 + +. +foo__bar__ +. +

foo__bar__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6653 + +. +5__6__78 +. +

5__6__78

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6660 + +. +пристаням__стремятся__ +. +

пристаням__стремятся__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6667 + +. +__foo, __bar__, baz__ +. +

foo, bar, baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6678 + +. +foo-__(bar)__ +. +

foo-(bar)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6691 + +. +**foo bar ** +. +

**foo bar **

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6704 + +. +**(**foo) +. +

**(**foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6714 + +. +*(**foo**)* +. +

(foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6721 + +. +**Gomphocarpus (*Gomphocarpus physocarpus*, syn. +*Asclepias physocarpa*)** +. +

Gomphocarpus (Gomphocarpus physocarpus, syn. +Asclepias physocarpa)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6730 + +. +**foo "*bar*" foo** +. +

foo "bar" foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6739 + +. +**foo**bar +. +

foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6751 + +. +__foo bar __ +. +

__foo bar __

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6761 + +. +__(__foo) +. +

__(__foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6771 + +. +_(__foo__)_ +. +

(foo)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6780 + +. +__foo__bar +. +

__foo__bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6787 + +. +__пристаням__стремятся +. +

__пристаням__стремятся

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6794 + +. +__foo__bar__baz__ +. +

foo__bar__baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6805 + +. +__(bar)__. +. +

(bar).

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6817 + +. +*foo [bar](/url)* +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6824 + +. +*foo +bar* +. +

foo +bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6836 + +. +_foo __bar__ baz_ +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6843 + +. +_foo _bar_ baz_ +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6850 + +. +__foo_ bar_ +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6857 + +. +*foo *bar** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6864 + +. +*foo **bar** baz* +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6870 + +. +*foo**bar**baz* +. +

foobarbaz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6894 + +. +*foo**bar* +. +

foo**bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6907 + +. +***foo** bar* +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6914 + +. +*foo **bar*** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6921 + +. +*foo**bar*** +. +

foobar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6932 + +. +foo***bar***baz +. +

foobarbaz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6938 + +. +foo******bar*********baz +. +

foobar***baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6947 + +. +*foo **bar *baz* bim** bop* +. +

foo bar baz bim bop

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6954 + +. +*foo [*bar*](/url)* +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6963 + +. +** is not an empty emphasis +. +

** is not an empty emphasis

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6970 + +. +**** is not an empty strong emphasis +. +

**** is not an empty strong emphasis

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6983 + +. +**foo [bar](/url)** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 6990 + +. +**foo +bar** +. +

foo +bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7002 + +. +__foo _bar_ baz__ +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7009 + +. +__foo __bar__ baz__ +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7016 + +. +____foo__ bar__ +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7023 + +. +**foo **bar**** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7030 + +. +**foo *bar* baz** +. +

foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7037 + +. +**foo*bar*baz** +. +

foobarbaz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7044 + +. +***foo* bar** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7051 + +. +**foo *bar*** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7060 + +. +**foo *bar **baz** +bim* bop** +. +

foo bar baz +bim bop

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7069 + +. +**foo [*bar*](/url)** +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7078 + +. +__ is not an empty emphasis +. +

__ is not an empty emphasis

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7085 + +. +____ is not an empty strong emphasis +. +

____ is not an empty strong emphasis

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7095 + +. +foo *** +. +

foo ***

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7102 + +. +foo *\** +. +

foo *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7109 + +. +foo *_* +. +

foo _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7116 + +. +foo ***** +. +

foo *****

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7123 + +. +foo **\*** +. +

foo *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7130 + +. +foo **_** +. +

foo _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7141 + +. +**foo* +. +

*foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7148 + +. +*foo** +. +

foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7155 + +. +***foo** +. +

*foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7162 + +. +****foo* +. +

***foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7169 + +. +**foo*** +. +

foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7176 + +. +*foo**** +. +

foo***

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7186 + +. +foo ___ +. +

foo ___

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7193 + +. +foo _\__ +. +

foo _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7200 + +. +foo _*_ +. +

foo *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7207 + +. +foo _____ +. +

foo _____

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7214 + +. +foo __\___ +. +

foo _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7221 + +. +foo __*__ +. +

foo *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7228 + +. +__foo_ +. +

_foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7239 + +. +_foo__ +. +

foo_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7246 + +. +___foo__ +. +

_foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7253 + +. +____foo_ +. +

___foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7260 + +. +__foo___ +. +

foo_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7267 + +. +_foo____ +. +

foo___

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7277 + +. +**foo** +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7284 + +. +*_foo_* +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7291 + +. +__foo__ +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7298 + +. +_*foo*_ +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7308 + +. +****foo**** +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7315 + +. +____foo____ +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7326 + +. +******foo****** +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7335 + +. +***foo*** +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7342 + +. +_____foo_____ +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7351 + +. +*foo _bar* baz_ +. +

foo _bar baz_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7358 + +. +*foo __bar *baz bim__ bam* +. +

foo bar *baz bim bam

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7367 + +. +**foo **bar baz** +. +

**foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7374 + +. +*foo *bar baz* +. +

*foo bar baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7383 + +. +*[bar*](/url) +. +

*bar*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7390 + +. +_foo [bar_](/url) +. +

_foo bar_

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7397 + +. +* +. +

*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7404 + +. +** +. +

**

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7411 + +. +__ +. +

__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7418 + +. +*a `*`* +. +

a *

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7425 + +. +_a `_`_ +. +

a _

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7432 + +. +**a +. +

**ahttp://foo.bar/?q=**

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7439 + +. +__a +. +

__ahttp://foo.bar/?q=__

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7527 + +. +[link](/uri "title") +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7537 + +. +[link](/uri) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7543 + +. +[](./target.md) +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7550 + +. +[link]() +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7557 + +. +[link](<>) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7564 + +. +[]() +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7573 + +. +[link](/my uri) +. +

[link](/my uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7579 + +. +[link](
) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7588 + +. +[link](foo +bar) +. +

[link](foo +bar)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7596 + +. +[link]() +. +

[link]()

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7607 + +. +[a]() +. +

a

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7615 + +. +[link]() +. +

[link](<foo>)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7624 + +. +[a]( +[a](c) +. +

[a](<b)c +[a](<b)c> +[a](c)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7636 + +. +[link](\(foo\)) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7645 + +. +[link](foo(and(bar))) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7654 + +. +[link](foo(and(bar)) +. +

[link](foo(and(bar))

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7661 + +. +[link](foo\(and\(bar\)) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7668 + +. +[link]() +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7678 + +. +[link](foo\)\:) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7687 + +. +[link](#fragment) + +[link](http://example.com#fragment) + +[link](http://example.com?foo=3#frag) +. +

link

+

link

+

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7703 + +. +[link](foo\bar) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7719 + +. +[link](foo%20bä) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7730 + +. +[link]("title") +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7739 + +. +[link](/url "title") +[link](/url 'title') +[link](/url (title)) +. +

link +link +link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7753 + +. +[link](/url "title \""") +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7764 + +. +[link](/url "title") +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7773 + +. +[link](/url "title "and" title") +. +

[link](/url "title "and" title")

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7782 + +. +[link](/url 'title "and" title') +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7807 + +. +[link]( /uri + "title" ) +. +

link

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7818 + +. +[link] (/uri) +. +

[link] (/uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7828 + +. +[link [foo [bar]]](/uri) +. +

link [foo [bar]]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7835 + +. +[link] bar](/uri) +. +

[link] bar](/uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7842 + +. +[link [bar](/uri) +. +

[link bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7849 + +. +[link \[bar](/uri) +. +

link [bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7858 + +. +[link *foo **bar** `#`*](/uri) +. +

link foo bar #

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7865 + +. +[![moon](moon.jpg)](/uri) +. +

moon

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7874 + +. +[foo [bar](/uri)](/uri) +. +

[foo bar](/uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7881 + +. +[foo *[bar [baz](/uri)](/uri)*](/uri) +. +

[foo [bar baz](/uri)](/uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7888 + +. +![[[foo](uri1)](uri2)](uri3) +. +

[foo](uri2)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7898 + +. +*[foo*](/uri) +. +

*foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7905 + +. +[foo *bar](baz*) +. +

foo *bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7915 + +. +*foo [bar* baz] +. +

foo [bar baz]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7925 + +. +[foo +. +

[foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7932 + +. +[foo`](/uri)` +. +

[foo](/uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7939 + +. +[foo +. +

[foohttp://example.com/?search=](uri)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7977 + +. +[foo][bar] + +[bar]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7992 + +. +[link [foo [bar]]][ref] + +[ref]: /uri +. +

link [foo [bar]]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8001 + +. +[link \[bar][ref] + +[ref]: /uri +. +

link [bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8012 + +. +[link *foo **bar** `#`*][ref] + +[ref]: /uri +. +

link foo bar #

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8021 + +. +[![moon](moon.jpg)][ref] + +[ref]: /uri +. +

moon

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8032 + +. +[foo [bar](/uri)][ref] + +[ref]: /uri +. +

[foo bar]ref

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8041 + +. +[foo *bar [baz][ref]*][ref] + +[ref]: /uri +. +

[foo bar baz]ref

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8056 + +. +*[foo*][ref] + +[ref]: /uri +. +

*foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8065 + +. +[foo *bar][ref]* + +[ref]: /uri +. +

foo *bar*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8077 + +. +[foo + +[ref]: /uri +. +

[foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8086 + +. +[foo`][ref]` + +[ref]: /uri +. +

[foo][ref]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8095 + +. +[foo + +[ref]: /uri +. +

[foohttp://example.com/?search=][ref]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8106 + +. +[foo][BaR] + +[bar]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8117 + +. +[ẞ] + +[SS]: /url +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8129 + +. +[Foo + bar]: /url + +[Baz][Foo bar] +. +

Baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8142 + +. +[foo] [bar] + +[bar]: /url "title" +. +

[foo] bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8151 + +. +[foo] +[bar] + +[bar]: /url "title" +. +

[foo] +bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8192 + +. +[foo]: /url1 + +[foo]: /url2 + +[bar][foo] +. +

bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8207 + +. +[bar][foo\!] + +[foo!]: /url +. +

[bar][foo!]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8219 + +. +[foo][ref[] + +[ref[]: /uri +. +

[foo][ref[]

+

[ref[]: /uri

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8229 + +. +[foo][ref[bar]] + +[ref[bar]]: /uri +. +

[foo][ref[bar]]

+

[ref[bar]]: /uri

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8239 + +. +[[[foo]]] + +[[[foo]]]: /url +. +

[[[foo]]]

+

[[[foo]]]: /url

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8249 + +. +[foo][ref\[] + +[ref\[]: /uri +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8260 + +. +[bar\\]: /uri + +[bar\\] +. +

bar\

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8272 + +. +[] + +[]: /uri +. +

[]

+

[]: /uri

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8282 + +. +[ + ] + +[ + ]: /uri +. +

[ +]

+

[ +]: /uri

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8305 + +. +[foo][] + +[foo]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8314 + +. +[*foo* bar][] + +[*foo* bar]: /url "title" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8325 + +. +[Foo][] + +[foo]: /url "title" +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8338 + +. +[foo] +[] + +[foo]: /url "title" +. +

foo +[]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8358 + +. +[foo] + +[foo]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8367 + +. +[*foo* bar] + +[*foo* bar]: /url "title" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8376 + +. +[[*foo* bar]] + +[*foo* bar]: /url "title" +. +

[foo bar]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8385 + +. +[[bar [foo] + +[foo]: /url +. +

[[bar foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8396 + +. +[Foo] + +[foo]: /url "title" +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8407 + +. +[foo] bar + +[foo]: /url +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8419 + +. +\[foo] + +[foo]: /url "title" +. +

[foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8431 + +. +[foo*]: /url + +*[foo*] +. +

*foo*

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8443 + +. +[foo][bar] + +[foo]: /url1 +[bar]: /url2 +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8452 + +. +[foo][] + +[foo]: /url1 +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8462 + +. +[foo]() + +[foo]: /url1 +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8470 + +. +[foo](not a link) + +[foo]: /url1 +. +

foo(not a link)

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8481 + +. +[foo][bar][baz] + +[baz]: /url +. +

[foo]bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8493 + +. +[foo][bar][baz] + +[baz]: /url1 +[bar]: /url2 +. +

foobaz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8506 + +. +[foo][bar][baz] + +[baz]: /url1 +[foo]: /url2 +. +

[foo]bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8529 + +. +![foo](/url "title") +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8536 + +. +![foo *bar*] + +[foo *bar*]: train.jpg "train & tracks" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8545 + +. +![foo ![bar](/url)](/url2) +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8552 + +. +![foo [bar](/url)](/url2) +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8566 + +. +![foo *bar*][] + +[foo *bar*]: train.jpg "train & tracks" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8575 + +. +![foo *bar*][foobar] + +[FOOBAR]: train.jpg "train & tracks" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8584 + +. +![foo](train.jpg) +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8591 + +. +My ![foo bar](/path/to/train.jpg "title" ) +. +

My foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8598 + +. +![foo]() +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8605 + +. +![](/url) +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8614 + +. +![foo][bar] + +[bar]: /url +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8623 + +. +![foo][bar] + +[BAR]: /url +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8634 + +. +![foo][] + +[foo]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8643 + +. +![*foo* bar][] + +[*foo* bar]: /url "title" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8654 + +. +![Foo][] + +[foo]: /url "title" +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8666 + +. +![foo] +[] + +[foo]: /url "title" +. +

foo +[]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8679 + +. +![foo] + +[foo]: /url "title" +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8688 + +. +![*foo* bar] + +[*foo* bar]: /url "title" +. +

foo bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8699 + +. +![[foo]] + +[[foo]]: /url "title" +. +

![[foo]]

+

[[foo]]: /url "title"

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8711 + +. +![Foo] + +[foo]: /url "title" +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8723 + +. +!\[foo] + +[foo]: /url "title" +. +

![foo]

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8735 + +. +\![foo] + +[foo]: /url "title" +. +

!foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8768 + +. + +. +

http://foo.bar.baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8775 + +. + +. +

http://foo.bar.baz/test?q=hello&id=22&boolean

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8782 + +. + +. +

irc://foo.bar:2233/baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8791 + +. + +. +

MAILTO:FOO@BAR.BAZ

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8803 + +. + +. +

a+b+c:d

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8810 + +. + +. +

made-up-scheme://foo,bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8817 + +. + +. +

http://../

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8824 + +. + +. +

localhost:5001/foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8833 + +. + +. +

<http://foo.bar/baz bim>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8842 + +. + +. +

http://example.com/\[\

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8864 + +. + +. +

foo@bar.example.com

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8871 + +. + +. +

foo+special@Bar.baz-bar0.com

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8880 + +. + +. +

<foo+@bar.example.com>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8889 + +. +<> +. +

<>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8896 + +. +< http://foo.bar > +. +

< http://foo.bar >

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8903 + +. + +. +

<m:abc>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8910 + +. + +. +

<foo.bar.baz>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8917 + +. +http://example.com +. +

http://example.com

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 8924 + +. +foo@bar.example.com +. +

foo@bar.example.com

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9005 + +. + +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9014 + +. + +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9023 + +. + +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9034 + +. + +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9045 + +. +Foo +. +

Foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9054 + +. +<33> <__> +. +

<33> <__>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9063 + +. +
+. +

<a h*#ref="hi">

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9072 + +. +
+. +

</a href="foo">

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9123 + +. +foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9132 + +. +foo +. +

foo <!-- not a comment -- two hyphens -->

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9141 + +. +foo foo --> + +foo +. +

foo <!--> foo -->

+

foo <!-- foo--->

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9153 + +. +foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9162 + +. +foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9171 + +. +foo &<]]> +. +

foo &<]]>

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9181 + +. +foo
+. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9190 + +. +foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9197 + +. + +. +

<a href=""">

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9211 + +. +foo +baz +. +

foo
+baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9223 + +. +foo\ +baz +. +

foo
+baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9234 + +. +foo +baz +. +

foo
+baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9245 + +. +foo + bar +. +

foo
+bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9254 + +. +foo\ + bar +. +

foo
+bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9266 + +. +*foo +bar* +. +

foo
+bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9275 + +. +*foo\ +bar* +. +

foo
+bar

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9286 + +. +`code +span` +. +

code span

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9294 + +. +`code\ +span` +. +

code\ span

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9304 + +. +
+. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9313 + +. + +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9326 + +. +foo\ +. +

foo\

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9333 + +. +foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9340 + +. +### foo\ +. +

foo\

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9347 + +. +### foo +. +

foo

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9362 + +. +foo +baz +. +

foo +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9374 + +. +foo + baz +. +

foo +baz

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9394 + +. +hello $.;'there +. +

hello $.;'there

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9401 + +. +Foo χρῆν +. +

Foo χρῆν

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 9410 + +. +Multiple spaces +. +

Multiple spaces

+. + diff --git a/tests/test_port/fixtures/fatal.md b/tests/test_port/fixtures/fatal.md new file mode 100644 index 0000000..7b2afcf --- /dev/null +++ b/tests/test_port/fixtures/fatal.md @@ -0,0 +1,41 @@ +Should not throw exception on invalid chars in URL (`*` not allowed in path) [malformed URI] +. +[foo](<%test>) +. +

foo

+. + + +Should not throw exception on broken utf-8 sequence in URL [malformed URI] +. +[foo](%C3) +. +

foo

+. + + +Should not throw exception on broken utf-16 surrogates sequence in URL [malformed URI] +. +[foo](�) +. +

foo

+. + + +Should not hang comments regexp +. +foo +. +

foo <!— xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ->

+

foo <!------------------------------------------------------------------->

+. + + +Should not hang cdata regexp +. +foo +. +

foo <![CDATA[ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ]>

+. diff --git a/tests/test_port/fixtures/issue-fixes.md b/tests/test_port/fixtures/issue-fixes.md new file mode 100644 index 0000000..0c693b0 --- /dev/null +++ b/tests/test_port/fixtures/issue-fixes.md @@ -0,0 +1,38 @@ +#31 empty lines after certain lists raises exception: +. +> a + +- b + + +. +
+

a

+
+
    +
  • b
  • +
+. + +#50 blank lines after block quotes +. +> A Block Quote + +> Another Block Quote + + +. +
+

A Block Quote

+
+
+

Another Block Quote

+
+. + +#80 UnicodeError with codepoints larger than 0xFFFF +. +💬 +. +

💬

+. diff --git a/tests/test_port/fixtures/linkify.md b/tests/test_port/fixtures/linkify.md new file mode 100644 index 0000000..9edb78f --- /dev/null +++ b/tests/test_port/fixtures/linkify.md @@ -0,0 +1,99 @@ +linkify +. +url http://www.youtube.com/watch?v=5Jt5GEr4AYg. +. +

url http://www.youtube.com/watch?v=5Jt5GEr4AYg.

+. + + +don't touch text in links +. +[https://example.com](https://example.com) +. +

https://example.com

+. + + +don't touch text in autolinks +. + +. +

https://example.com

+. + + +don't touch text in html tags +. +https://example.com +. +

https://example.com

+. + + +match links without protocol +. +www.example.org +. +

www.example.org

+. + + +emails +. +test@example.com + +mailto:test@example.com +. +

test@example.com

+

mailto:test@example.com

+. + + +typorgapher should not break href +. +http://example.com/(c) +. +

http://example.com/(c)

+. + +before line +. +before +github.com +. +

before +github.com

+. + +after line +. +github.com +after +. +

github.com +after

+. + +before after lines +. +before +github.com +after +. +

before +github.com +after

+. + +before after lines with blank line +. +before + +github.com + +after +. +

before

+

github.com

+

after

+. \ No newline at end of file diff --git a/tests/test_port/fixtures/normalize.md b/tests/test_port/fixtures/normalize.md new file mode 100644 index 0000000..4a00508 --- /dev/null +++ b/tests/test_port/fixtures/normalize.md @@ -0,0 +1,39 @@ + +Encode link destination, decode text inside it: + +. + +. +

http://example.com/αβγδ

+. + +. +[foo](http://example.com/α%CE%B2γ%CE%B4) +. +

foo

+. + + +Keep %25 as is because decoding it may break urls, #720 +. + +. +

https://www.google.com/search?q=hello.%252Ehello

+. + + +Don't encode domains in unknown schemas: + +. +[](skype:γγγ) +. +

+. + + +Square brackets are allowed +. +[foo](https://bar]baz.org) +. +

foo

+. diff --git a/tests/test_port/fixtures/proto.md b/tests/test_port/fixtures/proto.md new file mode 100644 index 0000000..87fdccf --- /dev/null +++ b/tests/test_port/fixtures/proto.md @@ -0,0 +1,16 @@ +. +[__proto__] + +[__proto__]: blah +. +

proto

+. + + +. +[hasOwnProperty] + +[hasOwnProperty]: blah +. +

hasOwnProperty

+. diff --git a/tests/test_port/fixtures/punycode.md b/tests/test_port/fixtures/punycode.md new file mode 100644 index 0000000..c726e82 --- /dev/null +++ b/tests/test_port/fixtures/punycode.md @@ -0,0 +1,77 @@ +Should decode punycode: + +. + +. +

http://☃.net/

+. + +. + +. +

http://☃.net/

+. + +Invalid punycode: + +. + +. +

http://xn--xn.com/

+. + +Invalid punycode (non-ascii): + +. + +. +

http://xn--γ.com/

+. + +Two slashes should start a domain: + +. +[](//☃.net/) +. +

+. + +Should auto-add protocol to autolinks: + +. +test google.com foo +. +

test google.com foo

+. + +Should support IDN in autolinks: + +. +test http://xn--n3h.net/ foo +. +

test http://☃.net/ foo

+. + +. +test http://☃.net/ foo +. +

test http://☃.net/ foo

+. + +. +test //xn--n3h.net/ foo +. +

test //☃.net/ foo

+. + +. +test xn--n3h.net foo +. +

test ☃.net foo

+. + +. +test xn--n3h@xn--n3h.net foo +. +

test xn--n3h@☃.net foo

+. diff --git a/tests/test_port/fixtures/smartquotes.md b/tests/test_port/fixtures/smartquotes.md new file mode 100644 index 0000000..70378b8 --- /dev/null +++ b/tests/test_port/fixtures/smartquotes.md @@ -0,0 +1,166 @@ +Should parse nested quotes: +. +"foo 'bar' baz" + +'foo 'bar' baz' +. +

“foo ‘bar’ baz”

+

‘foo ‘bar’ baz’

+. + + +Should not overlap quotes: +. +'foo "bar' baz" +. +

‘foo "bar’ baz"

+. + + +Should match quotes on the same level: +. +"foo *bar* baz" +. +

“foo bar baz”

+. + + +Should handle adjacent nested quotes: +. +'"double in single"' + +"'single in double'" +. +

‘“double in single”’

+

“‘single in double’”

+. + + + +Should not match quotes on different levels: +. +*"foo* bar" + +"foo *bar"* + +*"foo* bar *baz"* +. +

"foo bar"

+

"foo bar"

+

"foo bar baz"

+. + +Smartquotes should not overlap with other tags: +. +*foo "bar* *baz" quux* +. +

foo "bar baz" quux

+. + + +Should try and find matching quote in this case: +. +"foo "bar 'baz" +. +

"foo “bar 'baz”

+. + + +Should not touch 'inches' in quotes: +. +"Monitor 21"" and "Monitor"" +. +

“Monitor 21"” and “Monitor”"

+. + + +Should render an apostrophe as a rsquo: +. +This isn't and can't be the best approach to implement this... +. +

This isn’t and can’t be the best approach to implement this…

+. + + +Apostrophe could end the word, that's why original smartypants replaces all of them as rsquo: +. +users' stuff +. +

users’ stuff

+. + +Quotes between punctuation chars: + +. +"(hai)". +. +

“(hai)”.

+. + +Quotes at the start/end of the tokens: +. +"*foo* bar" + +"foo *bar*" + +"*foo bar*" +. +

foo bar”

+

“foo bar

+

foo bar

+. + +Should treat softbreak as a space: +. +"this" +and "that". + +"this" and +"that". +. +

“this” +and “that”.

+

“this” and +“that”.

+. + +Should treat hardbreak as a space: +. +"this"\ +and "that". + +"this" and\ +"that". +. +

“this”
+and “that”.

+

“this” and
+“that”.

+. + +Should allow quotes adjacent to other punctuation characters, #643: +. +The dog---"'man's' best friend" +. +

The dog—“‘man’s’ best friend”

+. + +Should parse quotes adjacent to code block, #677: +. +"test `code`" + +"`code` test" +. +

“test code

+

code test”

+. + +Should parse quotes adjacent to inline html, #677: +. +"test
" + +"
test" +. +

“test

+


test”

+. \ No newline at end of file diff --git a/tests/test_port/fixtures/strikethrough.md b/tests/test_port/fixtures/strikethrough.md new file mode 100644 index 0000000..ca15b6f --- /dev/null +++ b/tests/test_port/fixtures/strikethrough.md @@ -0,0 +1,136 @@ +. +~~Strikeout~~ +. +

Strikeout

+. + +. +x ~~~~foo~~ bar~~ +. +

x foo bar

+. + +. +x ~~foo ~~bar~~~~ +. +

x foo bar

+. + +. +x ~~~~foo~~~~ +. +

x foo

+. + +. +x ~~a ~~foo~~~~~~~~~~~bar~~ b~~ + +x ~~a ~~foo~~~~~~~~~~~~bar~~ b~~ +. +

x a foo~~~bar b

+

x a foo~~~~bar b

+. + + +Strikeouts have the same priority as emphases: +. +**~~test**~~ + +~~**test~~** +. +

~~test~~

+

**test**

+. + + +Strikeouts have the same priority as emphases with respect to links: +. +[~~link]()~~ + +~~[link~~]() +. +

~~link~~

+

~~link~~

+. + + +Strikeouts have the same priority as emphases with respect to backticks: +. +~~`code~~` + +`~~code`~~ +. +

~~code~~

+

~~code~~

+. + + +Nested strikeouts: +. +~~foo ~~bar~~ baz~~ + +~~f **o ~~o b~~ a** r~~ +. +

foo bar baz

+

f o o b a r

+. + + +Should not have a whitespace between text and "~~": +. +foo ~~ bar ~~ baz +. +

foo ~~ bar ~~ baz

+. + + +Should parse strikethrough within link tags: +. +[~~foo~~]() +. +

foo

+. + + +Newline should be considered a whitespace: +. +~~test +~~ + +~~ +test~~ + +~~ +test +~~ +. +

~~test +~~

+

~~ +test~~

+

~~ +test +~~

+. + +From CommonMark test suite, replacing `**` with our marker: + +. +a~~"foo"~~ +. +

a~~"foo"~~

+. + +Coverage: single tilde +. +~a~ +. +

~a~

+. + +Regression test for #742: +. +-~~~~;~~~~~~ +. +

-;~~

+. diff --git a/tests/test_port/fixtures/tables.md b/tests/test_port/fixtures/tables.md new file mode 100644 index 0000000..cf83708 --- /dev/null +++ b/tests/test_port/fixtures/tables.md @@ -0,0 +1,896 @@ +Simple: +. +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| Cell 3 | Cell 4 +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
Cell 3Cell 4
+. + + +Column alignment: +. +| Header 1 | Header 2 | Header 3 | Header 4 | +| :------: | -------: | :------- | -------- | +| Cell 1 | Cell 2 | Cell 3 | Cell 4 | +| Cell 5 | Cell 6 | Cell 7 | Cell 8 | +. + + + + + + + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3Header 4
Cell 1Cell 2Cell 3Cell 4
Cell 5Cell 6Cell 7Cell 8
+. + + +Nested emphases: +. +Header 1|Header 2|Header 3|Header 4 +:-------|:------:|-------:|-------- +Cell 1 |Cell 2 |Cell 3 |Cell 4 +*Cell 5*|Cell 6 |Cell 7 |Cell 8 +. + + + + + + + + + + + + + + + + + + + + + + + +
Header 1Header 2Header 3Header 4
Cell 1Cell 2Cell 3Cell 4
Cell 5Cell 6Cell 7Cell 8
+. + + +Nested tables inside blockquotes: +. +> foo|foo +> ---|--- +> bar|bar +baz|baz +. +
+ + + + + + + + + + + + + +
foofoo
barbar
+
+

baz|baz

+. + + +Minimal one-column: +. +| foo +|---- +| test2 +. + + + + + + + + + + + +
foo
test2
+. + + +This is parsed as one big table: +. +- foo|foo +---|--- +bar|bar +. + + + + + + + + + + + + + +
- foofoo
barbar
+. + + +Second line should not contain symbols except "-", ":", "|" and " ": +. +foo|foo +-----|-----s +bar|bar +. +

foo|foo +-----|-----s +bar|bar

+. + + +Second line should contain "|" symbol: +. +foo|foo +-----:----- +bar|bar +. +

foo|foo +-----:----- +bar|bar

+. + + +Second line should not have empty columns in the middle: +. +foo|foo +-----||----- +bar|bar +. +

foo|foo +-----||----- +bar|bar

+. + + +Wrong alignment symbol position: +. +foo|foo +-----|-::- +bar|bar +. +

foo|foo +-----|-::- +bar|bar

+. + + +Title line should contain "|" symbol: +. +foo +-----|----- +bar|bar +. +

foo +-----|----- +bar|bar

+. + + +Allow tabs as a separator on 2nd line +. +| foo | bar | +| --- | --- | +| baz | quux | +. + + + + + + + + + + + + + +
foobar
bazquux
+. + + +Should terminate paragraph: +. +paragraph +foo|foo +---|--- +bar|bar +. +

paragraph

+ + + + + + + + + + + + + +
foofoo
barbar
+. + + +Table no longer terminated via row without "|" symbol: +. +foo|foo +---|--- +paragraph +. + + + + + + + + + + + + + +
foofoo
paragraph
+. + + +Delimiter escaping (deprecated): +. +| Heading 1 \\\\| Heading 2 +| --------- | --------- +| Cell\|1\|| Cell\|2 +\| Cell\\\|3 \\| Cell\|4 +. +

| Heading 1 \\| Heading 2 +| --------- | --------- +| Cell|1|| Cell|2 +| Cell\|3 \| Cell|4

+. + +Pipes inside backticks DO split cells, unless `\` escaped: +. +| Heading 1 | Heading 2 +| --------- | --------- +| `Cell\|1` | Cell 2 +| `Cell|3` | Cell 4 +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell|1Cell 2
`Cell3`
+. + +Unclosed backticks don't count +. +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| `Cell 3| Cell 4 +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
`Cell 3Cell 4
+. + +Another complicated backticks case +. +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| \\\`|\\\` +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
\`\`
+. + +`\` in tables should not count as escaped backtick +. +# | 1 | 2 +--|--|-- +x | `\` | `x` +. + + + + + + + + + + + + + + + +
#12
x\x
+. + +Tables should handle escaped backticks +. +# | 1 | 2 +--|--|-- +x | \`\` | `x` +. + + + + + + + + + + + + + + + +
#12
x``x
+. + + +An amount of rows might be different across table (issue #171), but header and alignment rows must be equal (#697): +. +| 1 | 2 | +| :-----: | :-----: | +| 3 | 4 | 5 | 6 | +. + + + + + + + + + + + + + +
12
34
+. + + +An amount of rows might be different across the table #2: +. +| 1 | 2 | 3 | 4 | +| :-----: | :-----: | :-----: | :-----: | +| 5 | 6 | +. + + + + + + + + + + + + + + + + + +
1234
56
+. + + +Allow one-column tables (issue #171): +. +| foo | +:-----: +| bar | +. + + + + + + + + + + + +
foo
bar
+. + + +Allow indented tables (issue #325): +. + | Col1a | Col2a | + | ----- | ----- | + | Col1b | Col2b | +. + + + + + + + + + + + + + +
Col1aCol2a
Col1bCol2b
+. + + +Tables should not be indented more than 4 spaces (1st line): +. + | Col1a | Col2a | + | ----- | ----- | + | Col1b | Col2b | +. +
| Col1a | Col2a |
+
+

| ----- | ----- | +| Col1b | Col2b |

+. + + +Tables should not be indented more than 4 spaces (2nd line): +. + | Col1a | Col2a | + | ----- | ----- | + | Col1b | Col2b | +. +

| Col1a | Col2a | +| ----- | ----- | +| Col1b | Col2b |

+. + + +Tables should not be indented more than 4 spaces (3rd line): +. + | Col1a | Col2a | + | ----- | ----- | + | Col1b | Col2b | +. + + + + + + + +
Col1aCol2a
+
| Col1b | Col2b |
+
+. + + +Allow tables with empty body: +. + | Col1a | Col2a | + | ----- | ----- | +. + + + + + + + +
Col1aCol2a
+. + + +Align row should be at least as large as any actual rows: +. +Col1a | Col1b | Col1c +----- | ----- +Col2a | Col2b | Col2c +. +

Col1a | Col1b | Col1c +----- | ----- +Col2a | Col2b | Col2c

+. + +Escaped pipes inside backticks don't split cells: +. +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| `Cell 3\|` | Cell 4 +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
Cell 3|Cell 4
+. + +Escape before escaped Pipes inside backticks don't split cells: +. +| Heading 1 | Heading 2 +| --------- | --------- +| Cell 1 | Cell 2 +| `Cell 3\\|` | Cell 4 +. + + + + + + + + + + + + + + + + + +
Heading 1Heading 2
Cell 1Cell 2
Cell 3\|Cell 4
+. + +Regression test for #721, table in a list indented with tabs: +. +- Level 1 + + - Level 2 + + | Column 1 | Column 2 | + | -------- | -------- | + | abcdefgh | ijklmnop | +. +
    +
  • +

    Level 1

    +
      +
    • +

      Level 2

      + + + + + + + + + + + + + +
      Column 1Column 2
      abcdefghijklmnop
      +
    • +
    +
  • +
+. + +Table without any columns is not a table, #724 +. +| +| +| +. +

| +| +|

+. + +GFM 4.10 Tables (extension), Example 198 +. +| foo | bar | +| --- | --- | +| baz | bim | +. + + + + + + + + + + + + + +
foobar
bazbim
+. + +GFM 4.10 Tables (extension), Example 199 +. +| abc | defghi | +:-: | -----------: +bar | baz +. + + + + + + + + + + + + + +
abcdefghi
barbaz
+. + +GFM 4.10 Tables (extension), Example 200 +. +| f\|oo | +| ------ | +| b `\|` az | +| b **\|** im | +. + + + + + + + + + + + + + + +
f|oo
b | az
b | im
+. + +GFM 4.10 Tables (extension), Example 201 +. +| abc | def | +| --- | --- | +| bar | baz | +> bar +. + + + + + + + + + + + + + +
abcdef
barbaz
+
+

bar

+
+. + +GFM 4.10 Tables (extension), Example 202 +. +| abc | def | +| --- | --- | +| bar | baz | +bar + +bar +. + + + + + + + + + + + + + + + + + +
abcdef
barbaz
bar
+

bar

+. + +GFM 4.10 Tables (extension), Example 203 +. +| abc | def | +| --- | +| bar | +. +

| abc | def | +| --- | +| bar |

+. + +GFM 4.10 Tables (extension), Example 204 +. +| abc | def | +| --- | --- | +| bar | +| bar | baz | boo | +. + + + + + + + + + + + + + + + + + +
abcdef
bar
barbaz
+. + +GFM 4.10 Tables (extension), Example 205 +. +| abc | def | +| --- | --- | +. + + + + + + + +
abcdef
+. + +A list takes precedence in case of ambiguity +. +a | b +- | - +1 | 2 +. +

a | b

+
    +
  • | - +1 | 2
  • +
+. diff --git a/tests/test_port/fixtures/typographer.md b/tests/test_port/fixtures/typographer.md new file mode 100644 index 0000000..39154ed --- /dev/null +++ b/tests/test_port/fixtures/typographer.md @@ -0,0 +1,115 @@ +. +(bad) +. +

(bad)

+. + +copyright (Lower) +. +(c) +. +

©

+. + +copyright (Upper) +. +(C) +. +

©

+. + +copyright +. +(c) (C) +. +

© ©

+. + + +reserved +. +(r) (R) +. +

® ®

+. + + +trademark +. +(tm) (TM) +. +

™ ™

+. + + +paragraph +. +(p) (P) +. +

§ §

+. + + +plus-minus +. ++-5 +. +

±5

+. + + +ellipsis +. +test.. test... test..... test?..... test!.... +. +

test… test… test… test?.. test!..

+. + + +dupes +. +!!!!!! ???? ,, +. +

!!! ??? ,

+. + + +dupes-ellipsis +. +!... ?... ,... !!!!!!.... ????.... ,,... +. +

!.. ?.. ,… !!!.. ???.. ,…

+. + + +dashes +. +---markdownit --- super--- + +markdownit---awesome + +abc ---- + +--markdownit -- super-- + +markdownit--awesome +. +

—markdownit — super—

+

markdownit—awesome

+

abc ----

+

–markdownit – super–

+

markdownit–awesome

+. + +regression tests for #624 +. +1---2---3 + +1--2--3 + +1 -- -- 3 +. +

1—2—3

+

1–2–3

+

1 – – 3

+. diff --git a/tests/test_port/fixtures/xss.md b/tests/test_port/fixtures/xss.md new file mode 100644 index 0000000..7c0512e --- /dev/null +++ b/tests/test_port/fixtures/xss.md @@ -0,0 +1,128 @@ +. +[normal link](javascript) +. +

normal link

+. + + +Should not allow some protocols in links and images +. +[xss link](javascript:alert(1)) + +[xss link](JAVASCRIPT:alert(1)) + +[xss link](vbscript:alert(1)) + +[xss link](VBSCRIPT:alert(1)) + +[xss link](file:///123) +. +

[xss link](javascript:alert(1))

+

[xss link](JAVASCRIPT:alert(1))

+

[xss link](vbscript:alert(1))

+

[xss link](VBSCRIPT:alert(1))

+

[xss link](file:///123)

+. + + +. +[xss link]("><script>alert("xss")</script>) + +[xss link](Javascript:alert(1)) + +[xss link](&#74;avascript:alert(1)) + +[xss link](\Javascript:alert(1)) +. +

xss link

+

[xss link](Javascript:alert(1))

+

xss link

+

xss link

+. + +. +[xss link]() +. +

[xss link](<javascript:alert(1)>)

+. + +. +[xss link](javascript:alert(1)) +. +

[xss link](javascript:alert(1))

+. + + +Should not allow data-uri except some whitelisted mimes +. +![](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) +. +

+. + +. +[xss link](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K) +. +

[xss link](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)

+. + +. +[normal link](/javascript:link) +. +

normal link

+. + + +Image parser use the same code base as link. +. +![xss link](javascript:alert(1)) +. +

![xss link](javascript:alert(1))

+. + + +Autolinks +. + + + +. +

<javascript:alert(1)>

+

<javascript:alert(1)>

+. + + +Linkifier +. +javascript:alert(1) + +javascript:alert(1) +. +

javascript:alert(1)

+

javascript:alert(1)

+. + + +References +. +[test]: javascript:alert(1) +. +

[test]: javascript:alert(1)

+. + + +Make sure we decode entities before split: +. +```js custom-class +test1 +``` + +```js custom-class +test2 +``` +. +
test1
+
+
test2
+
+. diff --git a/tests/test_port/test_fixtures.py b/tests/test_port/test_fixtures.py new file mode 100644 index 0000000..5117c5e --- /dev/null +++ b/tests/test_port/test_fixtures.py @@ -0,0 +1,114 @@ +from pathlib import Path + +import pytest + +from markdown_it import MarkdownIt +from markdown_it.utils import read_fixture_file + +FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("linkify.md")), +) +def test_linkify(line, title, input, expected): + md = MarkdownIt().enable("linkify") + md.options["linkify"] = True + text = md.render(input) + assert text.rstrip() == expected.rstrip() + + # if not install linkify-it-py + md.linkify = None + with pytest.raises(ModuleNotFoundError): + md.render(input) + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("smartquotes.md")), +) +def test_smartquotes(line, title, input, expected): + md = MarkdownIt().enable("replacements").enable("smartquotes") + md.options["typographer"] = True + text = md.render(input) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("typographer.md")), +) +def test_typographer(line, title, input, expected): + md = MarkdownIt().enable("replacements") + md.options["typographer"] = True + text = md.render(input) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("tables.md")) +) +def test_table(line, title, input, expected): + md = MarkdownIt().enable("table") + text = md.render(input) + try: + assert text.rstrip() == expected.rstrip() + except AssertionError: + print(text) + raise + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("commonmark_extras.md")), +) +def test_commonmark_extras(line, title, input, expected): + md = MarkdownIt("commonmark") + md.options["langPrefix"] = "" + text = md.render(input) + if text.rstrip() != expected.rstrip(): + print(text) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("normalize.md")), +) +def test_normalize_url(line, title, input, expected): + md = MarkdownIt("commonmark") + text = md.render(input) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", read_fixture_file(FIXTURE_PATH.joinpath("fatal.md")) +) +def test_fatal(line, title, input, expected): + md = MarkdownIt("commonmark").enable("replacements") + md.options["typographer"] = True + text = md.render(input) + if text.rstrip() != expected.rstrip(): + print(text) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("strikethrough.md")), +) +def test_strikethrough(line, title, input, expected): + md = MarkdownIt().enable("strikethrough") + text = md.render(input) + assert text.rstrip() == expected.rstrip() + + +@pytest.mark.parametrize( + "line,title,input,expected", + read_fixture_file(FIXTURE_PATH.joinpath("issue-fixes.md")), +) +def test_issue_fixes(line, title, input, expected): + md = MarkdownIt() + text = md.render(input) + assert text.rstrip() == expected.rstrip() diff --git a/tests/test_port/test_misc.py b/tests/test_port/test_misc.py new file mode 100644 index 0000000..62b5bf8 --- /dev/null +++ b/tests/test_port/test_misc.py @@ -0,0 +1,44 @@ +from markdown_it import MarkdownIt, presets + + +def test_highlight_arguments(): + def highlight_func(str_, lang, attrs): + assert lang == "a" + assert attrs == "b c d" + return "
==" + str_ + "==
" + + conf = presets.commonmark.make() + conf["options"]["highlight"] = highlight_func + md = MarkdownIt(config=conf) + assert md.render("``` a b c d \nhl\n```") == "
==hl\n==
\n" + + +def test_ordered_list_info(): + def type_filter(tokens, type_): + return [t for t in tokens if t.type == type_] + + md = MarkdownIt() + + tokens = md.parse("1. Foo\n2. Bar\n20. Fuzz") + assert len(type_filter(tokens, "ordered_list_open")) == 1 + tokens = type_filter(tokens, "list_item_open") + assert len(tokens) == 3 + assert tokens[0].info == "1" + assert tokens[0].markup == "." + assert tokens[1].info == "2" + assert tokens[1].markup == "." + assert tokens[2].info == "20" + assert tokens[2].markup == "." + + tokens = md.parse(" 1. Foo\n2. Bar\n 20. Fuzz\n 199. Flp") + assert len(type_filter(tokens, "ordered_list_open")) == 1 + tokens = type_filter(tokens, "list_item_open") + assert len(tokens) == 4 + assert tokens[0].info == "1" + assert tokens[0].markup == "." + assert tokens[1].info == "2" + assert tokens[1].markup == "." + assert tokens[2].info == "20" + assert tokens[2].markup == "." + assert tokens[3].info == "199" + assert tokens[3].markup == "." diff --git a/tests/test_port/test_no_end_newline.py b/tests/test_port/test_no_end_newline.py new file mode 100644 index 0000000..5e7cf82 --- /dev/null +++ b/tests/test_port/test_no_end_newline.py @@ -0,0 +1,27 @@ +import pytest + +from markdown_it import MarkdownIt + + +@pytest.mark.parametrize( + "input,expected", + [ + ("#", "

\n"), + ("###", "

\n"), + ("` `", "

\n"), + ("``````", "
\n"), + ("-", "
    \n
  • \n
\n"), + ("1.", "
    \n
  1. \n
\n"), + (">", "
\n"), + ("---", "
\n"), + ("

", "

"), + ("p", "

p

\n"), + ("[reference]: /url", ""), + (" indented code block", "
indented code block\n
\n"), + ("> test\n>", "
\n

test

\n
\n"), + ], +) +def test_no_end_newline(input, expected): + md = MarkdownIt() + text = md.render(input) + assert text == expected diff --git a/tests/test_port/test_references.py b/tests/test_port/test_references.py new file mode 100644 index 0000000..32e389d --- /dev/null +++ b/tests/test_port/test_references.py @@ -0,0 +1,53 @@ +from markdown_it import MarkdownIt + + +def test_ref_definitions(): + + md = MarkdownIt() + src = "[a]: abc\n\n[b]: xyz\n\n[b]: ijk" + env = {} + tokens = md.parse(src, env) + assert tokens == [] + assert env == { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + }, + "duplicate_refs": [{"href": "ijk", "label": "B", "map": [4, 5], "title": ""}], + } + + +def test_use_existing_env(data_regression): + md = MarkdownIt() + src = "[a]\n\n[c]: ijk" + env = { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + } + } + tokens = md.parse(src, env) + data_regression.check([token.as_dict() for token in tokens]) + assert env == { + "references": { + "A": {"title": "", "href": "abc", "map": [0, 1]}, + "B": {"title": "", "href": "xyz", "map": [2, 3]}, + "C": {"title": "", "href": "ijk", "map": [2, 3]}, + } + } + + +def test_store_labels(data_regression): + md = MarkdownIt() + md.options["store_labels"] = True + src = "[a]\n\n![a]\n\n[a]: ijk" + tokens = md.parse(src) + data_regression.check([token.as_dict() for token in tokens]) + + +def test_inline_definitions(data_regression): + md = MarkdownIt() + md.options["inline_definitions"] = True + src = '[a]: url "title"\n- [a]: url "title"' + tokens = md.parse(src) + data_regression.check([token.as_dict() for token in tokens]) diff --git a/tests/test_port/test_references/test_inline_definitions.yml b/tests/test_port/test_references/test_inline_definitions.yml new file mode 100644 index 0000000..5ec210b --- /dev/null +++ b/tests/test_port/test_references/test_inline_definitions.yml @@ -0,0 +1,94 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: + id: A + label: a + title: title + url: url + nesting: 0 + tag: '' + type: definition +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 1 + - 2 + markup: '-' + meta: {} + nesting: 1 + tag: ul + type: bullet_list_open +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 1 + map: + - 1 + - 2 + markup: '-' + meta: {} + nesting: 1 + tag: li + type: list_item_open +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 2 + map: + - 1 + - 2 + markup: '' + meta: + id: A + label: a + title: title + url: url + nesting: 0 + tag: '' + type: definition +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 1 + map: null + markup: '-' + meta: {} + nesting: -1 + tag: li + type: list_item_close +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '-' + meta: {} + nesting: -1 + tag: ul + type: bullet_list_close diff --git a/tests/test_port/test_references/test_store_labels.yml b/tests/test_port/test_references/test_store_labels.yml new file mode 100644 index 0000000..79f6f74 --- /dev/null +++ b/tests/test_port/test_references/test_store_labels.yml @@ -0,0 +1,159 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - href + - ijk + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: + label: A + nesting: 1 + tag: a + type: link_open + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 1 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + - attrs: null + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: a + type: link_close + content: '[a]' + hidden: false + info: '' + level: 1 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 2 + - 3 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - src + - ijk + - - alt + - '' + block: false + children: + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + content: a + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: + label: A + nesting: 0 + tag: img + type: image + content: '![a]' + hidden: false + info: '' + level: 1 + map: + - 2 + - 3 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close diff --git a/tests/test_port/test_references/test_use_existing_env.yml b/tests/test_port/test_references/test_use_existing_env.yml new file mode 100644 index 0000000..1a72337 --- /dev/null +++ b/tests/test_port/test_references/test_use_existing_env.yml @@ -0,0 +1,84 @@ +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 1 + tag: p + type: paragraph_open +- attrs: null + block: true + children: + - attrs: + - - href + - abc + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: 1 + tag: a + type: link_open + - attrs: null + block: false + children: null + content: a + hidden: false + info: '' + level: 1 + map: null + markup: '' + meta: {} + nesting: 0 + tag: '' + type: text + - attrs: null + block: false + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: a + type: link_close + content: '[a]' + hidden: false + info: '' + level: 1 + map: + - 0 + - 1 + markup: '' + meta: {} + nesting: 0 + tag: '' + type: inline +- attrs: null + block: true + children: null + content: '' + hidden: false + info: '' + level: 0 + map: null + markup: '' + meta: {} + nesting: -1 + tag: p + type: paragraph_close -- cgit v1.2.3