diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bd6489d5..0ac24f7b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [12.1.0] - WIP +### Changed +- Updated CM spec compatibility to 0.30. + + ## [12.0.6] - 2021-04-16 ### Fixed - Newline in `alt` should be rendered, #775. @@ -562,6 +567,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Renamed presets folder (configs -> presets). +[12.1.0]: https://github.com/markdown-it/markdown-it/compare/12.0.6...12.1.0 [12.0.6]: https://github.com/markdown-it/markdown-it/compare/12.0.5...12.0.6 [12.0.5]: https://github.com/markdown-it/markdown-it/compare/12.0.4...12.0.5 [12.0.4]: https://github.com/markdown-it/markdown-it/compare/12.0.3...12.0.4 diff --git a/lib/rules_block/html_block.js b/lib/rules_block/html_block.js index 256b59511..2f1767545 100644 --- a/lib/rules_block/html_block.js +++ b/lib/rules_block/html_block.js @@ -10,7 +10,7 @@ var HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE // last argument defines whether it can terminate a paragraph or not // var HTML_SEQUENCES = [ - [ /^<(script|pre|style)(?=(\s|>|$))/i, /<\/(script|pre|style)>/i, true ], + [ /^<(script|pre|style|textarea)(?=(\s|>|$))/i, /<\/(script|pre|style|textarea)>/i, true ], [ /^/, true ], [ /^<\?/, /\?>/, true ], [ /^/, true ], diff --git a/test/fixtures/commonmark/good.txt b/test/fixtures/commonmark/good.txt index 889f3d808..c437019ff 100644 --- a/test/fixtures/commonmark/good.txt +++ b/test/fixtures/commonmark/good.txt @@ -1,5 +1,5 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 351 +src line: 355 . foo baz bim @@ -9,7 +9,7 @@ src line: 351 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 358 +src line: 362 . foo baz bim @@ -19,7 +19,7 @@ src line: 358 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 365 +src line: 369 . a a @@ -31,7 +31,7 @@ src line: 365 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 378 +src line: 382 . - foo @@ -47,7 +47,7 @@ src line: 378 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 391 +src line: 395 . - foo @@ -64,7 +64,7 @@ src line: 391 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 414 +src line: 418 . > foo @@ -76,7 +76,7 @@ src line: 414 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 423 +src line: 427 . - foo @@ -90,7 +90,7 @@ src line: 423 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 435 +src line: 439 . foo @@ -102,7 +102,7 @@ bar . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 444 +src line: 448 . - foo @@ -123,7 +123,7 @@ src line: 444 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 462 +src line: 466 . # Foo @@ -132,7 +132,7 @@ src line: 462 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 468 +src line: 472 . * * * @@ -141,3390 +141,3191 @@ src line: 468 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 495 +src line: 489 . -- `one -- two` +\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ . - +

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

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 534 +src line: 499 . -*** ---- -___ +\ \A\a\ \3\φ\« . -
-
-
+

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

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 547 +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: 554 +src line: 534 . -=== +\\*emphasis* . -

===

+

\emphasis

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 563 +src line: 543 . --- -** -__ +foo\ +bar . -

-- -** -__

+

foo
+bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 576 +src line: 555 . - *** - *** - *** +`` \[\` `` . -
-
-
+

\[\`

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 589 +src line: 562 . - *** + \[\] . -
***
+
\[\]
 
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 597 +src line: 570 . -Foo - *** +~~~ +\[\] +~~~ . -

Foo -***

+
\[\]
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 608 +src line: 580 . -_____________________________________ + . -
+

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

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

foo

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

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 649 +src line: 613 . -_ _ _ _ a - -a------ - ----a--- +``` foo\+bar +foo +``` . -

_ _ _ _ a

-

a------

-

---a---

+
foo
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 665 +src line: 649 . - *-* +  & © Æ Ď +¾ ℋ ⅆ +∲ ≧̸ . -

-

+

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

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 674 +src line: 668 . -- foo -*** -- bar +# Ӓ Ϡ � . -
    -
  • foo
  • -
-
-
    -
  • bar
  • -
+

# Ӓ Ϡ �

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 691 +src line: 681 . -Foo -*** -bar +" ആ ಫ . -

Foo

-
-

bar

+

" ആ ಫ

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

Foo

-

bar

+

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

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 721 +src line: 707 . -* Foo -* * * -* Bar +© . -
    -
  • Foo
  • -
-
-
    -
  • Bar
  • -
+

&copy

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 738 +src line: 717 . -- Foo -- * * * +&MadeUpEntity; . -
    -
  • Foo
  • -
  • -
    -
  • -
+

&MadeUpEntity;

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 767 +src line: 728 . -# foo -## foo -### foo -#### foo -##### foo -###### foo + . -

foo

-

foo

-

foo

-

foo

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

####### foo

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 801 +src line: 742 . -#5 bolt +[foo] -#hashtag +[foo]: /föö "föö" . -

#5 bolt

-

#hashtag

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 813 +src line: 751 . -\## foo +``` föö +foo +``` . -

## foo

+
foo
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 822 +src line: 764 . -# foo *bar* \*baz\* +`föö` . -

foo bar *baz*

+

f&ouml;&ouml;

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 831 +src line: 771 . -# foo + föfö . -

foo

+
f&ouml;f&ouml;
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 840 +src line: 783 . - ### foo - ## foo - # foo +*foo* +*foo* . -

foo

-

foo

-

foo

+

*foo* +foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 853 +src line: 791 . - # foo +* foo + +* foo . -
# foo
-
+

* foo

+
    +
  • foo
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 861 +src line: 802 . -foo - # bar +foo bar .

foo -# bar

+ +bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 872 +src line: 810 . -## foo ## - ### bar ### + foo . -

foo

-

bar

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 883 +src line: 817 . -# foo ################################## -##### foo ## +[a](url "tit") . -

foo

-
foo
+

[a](url "tit")

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 894 +src line: 840 . -### foo ### +- `one +- two` . -

foo

+
    +
  • `one
  • +
  • two`
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 905 +src line: 879 . -### foo ### b +*** +--- +___ . -

foo ### b

+
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 914 +src line: 892 . -# foo# ++++ . -

foo#

+

+++

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 924 +src line: 899 . -### foo \### -## foo #\## -# foo \# +=== . -

foo ###

-

foo ###

-

foo #

+

===

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 938 +src line: 908 . -**** -## foo -**** +-- +** +__ . -
-

foo

-
+

-- +** +__

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 949 +src line: 921 . -Foo bar -# baz -Bar foo + *** + *** + *** . -

Foo bar

-

baz

-

Bar foo

+
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 962 +src line: 934 . -## -# -### ### + *** . -

-

-

+
***
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1005 +src line: 942 . -Foo *bar* -========= - -Foo *bar* ---------- +Foo + *** . -

Foo bar

-

Foo bar

+

Foo +***

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1019 +src line: 953 . -Foo *bar -baz* -==== +_____________________________________ . -

Foo bar -baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1033 +src line: 962 . - Foo *bar -baz* -==== + - - - . -

Foo bar -baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1045 +src line: 969 . -Foo -------------------------- - -Foo -= + ** * ** * ** * ** . -

Foo

-

Foo

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1060 +src line: 976 . - Foo ---- +- - - - +. +
+. - Foo ------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 985 - Foo - === . -

Foo

-

Foo

-

Foo

+- - - - +. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1078 +src line: 994 . - Foo - --- +_ _ _ _ a - Foo ---- -. -
Foo
----
+a------
 
-Foo
-
-
+---a--- +. +

_ _ _ _ a

+

a------

+

---a---

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

Foo

+

-

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

Foo ----

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

Foo -= =

Foo


+

bar

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

Foo

+

bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1144 +src line: 1066 . -Foo\ ----- +* Foo +* * * +* Bar . -

Foo\

+
    +
  • Foo
  • +
+
+
    +
  • Bar
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1155 +src line: 1083 . -`Foo ----- -` - - +- Foo +- * * * . -

`Foo

-

`

-

<a title="a lot

-

of dashes"/>

+
    +
  • Foo
  • +
  • +
    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1174 +src line: 1112 . -> Foo ---- +# foo +## foo +### foo +#### foo +##### foo +###### foo . -
-

Foo

-
-
+

foo

+

foo

+

foo

+

foo

+
foo
+
foo
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1185 +src line: 1131 . -> foo -bar -=== +####### foo . -
-

foo -bar -===

-
+

####### foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1198 +src line: 1146 . -- Foo ---- +#5 bolt + +#hashtag . -
    -
  • Foo
  • -
-
+

#5 bolt

+

#hashtag

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1213 +src line: 1158 . -Foo -Bar ---- +\## foo . -

Foo -Bar

+

## foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1226 +src line: 1167 . ---- -Foo ---- -Bar ---- -Baz +# foo *bar* \*baz\* . -
-

Foo

-

Bar

-

Baz

+

foo bar *baz*

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1243 +src line: 1176 . - -==== +# foo . -

====

+

foo

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

foo

+

foo

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1264 +src line: 1198 . -- foo ------ + # foo . -
    -
  • foo
  • -
-
+
# foo
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1275 +src line: 1206 . - foo ---- +foo + # bar . -
foo
-
-
+

foo +# bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1285 +src line: 1217 . -> foo ------ +## foo ## + ### bar ### . -
-

foo

-
-
+

foo

+

bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1299 +src line: 1228 . -\> foo ------- +# foo ################################## +##### foo ## . -

> foo

+

foo

+
foo
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1330 +src line: 1239 . -Foo - -bar ---- -baz +### foo ### . -

Foo

-

bar

-

baz

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1346 +src line: 1250 . -Foo -bar - ---- - -baz +### foo ### b . -

Foo -bar

-
-

baz

+

foo ### b

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1364 +src line: 1259 . -Foo -bar -* * * -baz +# foo# . -

Foo -bar

-
-

baz

+

foo#

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1379 +src line: 1269 . -Foo -bar -\--- -baz +### foo \### +## foo #\## +# foo \# . -

Foo -bar ---- -baz

+

foo ###

+

foo ###

+

foo #

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1407 +src line: 1283 . - a simple - indented code block +**** +## foo +**** . -
a simple
-  indented code block
-
+
+

foo

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

    foo

    -

    bar

    -
  • -
+

Foo bar

+

baz

+

Bar foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1435 +src line: 1307 . -1. foo - - - bar +## +# +### ### . -
    -
  1. -

    foo

    -
      -
    • bar
    • -
    -
  2. -
+

+

+

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1455 +src line: 1350 . -
- *hi* +Foo *bar* +========= - - one +Foo *bar* +--------- . -
<a/>
-*hi*
-
-- one
-
+

Foo bar

+

Foo bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1471 +src line: 1364 . - chunk1 - - chunk2 - - - - chunk3 +Foo *bar +baz* +==== . -
chunk1
-
-chunk2
-
-
-
-chunk3
-
+

Foo bar +baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1494 +src line: 1378 . - chunk1 - - chunk2 + Foo *bar +baz* +==== . -
chunk1
-  
-  chunk2
-
+

Foo bar +baz

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

Foo -bar

+

Foo

+

Foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1523 +src line: 1405 . - foo -bar + Foo +--- + + Foo +----- + + Foo + === . -
foo
-
-

bar

+

Foo

+

Foo

+

Foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1536 +src line: 1423 . -# Heading - foo -Heading ------- - foo ----- + Foo + --- + + Foo +--- . -

Heading

-
foo
-
-

Heading

-
foo
+
Foo
+---
+
+Foo
 

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1556 +src line: 1442 . - foo - bar +Foo + ---- . -
    foo
-bar
-
+

Foo

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

Foo +---

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1583 +src line: 1463 . - foo -. -
foo  
-
-. - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1638 +Foo += = +Foo +--- - . -``` -< - > -``` -. -
<
- >
-
+

Foo += =

+

Foo

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1652 +src line: 1479 . -~~~ -< - > -~~~ +Foo +----- . -
<
- >
-
+

Foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1665 +src line: 1489 . -`` -foo -`` +Foo\ +---- . -

foo

+

Foo\

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

`Foo

+

`

+

<a title="a lot

+

of dashes"/>

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1688 +src line: 1519 . -~~~ -aaa -``` -~~~ +> Foo +--- . -
aaa
-```
-
+
+

Foo

+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1702 +src line: 1530 . -```` -aaa -``` -`````` +> foo +bar +=== . -
aaa
-```
-
+
+

foo +bar +===

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1714 +src line: 1543 . -~~~~ -aaa -~~~ -~~~~ +- Foo +--- . -
aaa
-~~~
-
+
    +
  • Foo
  • +
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1729 +src line: 1558 . -``` +Foo +Bar +--- . -
+

Foo +Bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1736 +src line: 1571 . -````` - -``` -aaa +--- +Foo +--- +Bar +--- +Baz . -

-```
-aaa
-
+
+

Foo

+

Bar

+

Baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1749 +src line: 1588 . -> ``` -> aaa -bbb +==== . -
-
aaa
-
-
-

bbb

+

====

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1765 +src line: 1600 . -``` - - -``` +--- +--- . -

-  
-
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1779 +src line: 1609 . -``` -``` +- foo +----- . -
+
    +
  • foo
  • +
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1791 +src line: 1620 . - ``` - aaa -aaa -``` + foo +--- . -
aaa
-aaa
+
foo
 
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1803 +src line: 1630 . - ``` -aaa - aaa -aaa - ``` +> foo +----- . -
aaa
-aaa
-aaa
-
+
+

foo

+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1817 +src line: 1644 . - ``` - aaa - aaa - aaa - ``` +\> foo +------ . -
aaa
- aaa
-aaa
-
+

> foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1833 +src line: 1675 . - ``` - aaa - ``` +Foo + +bar +--- +baz . -
```
-aaa
-```
-
+

Foo

+

bar

+

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1848 +src line: 1691 . -``` -aaa - ``` +Foo +bar + +--- + +baz . -
aaa
-
+

Foo +bar

+
+

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1858 +src line: 1709 . - ``` -aaa - ``` +Foo +bar +* * * +baz . -
aaa
-
+

Foo +bar

+
+

baz

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

Foo +bar +--- +baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1884 +src line: 1752 . -``` ``` -aaa + a simple + indented code block . -

-aaa

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

    foo

    +

    bar

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

    -
    bar
    -
    -

    baz

    +
      +
    • bar
    • +
    +
  2. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1924 +src line: 1800 . -foo ---- -~~~ -bar -~~~ -# baz +
+ *hi* + + - one . -

foo

-
bar
+
<a/>
+*hi*
+
+- one
 
-

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1946 +src line: 1816 . -```ruby -def foo(x) - return 3 -end -``` + chunk1 + + chunk2 + + + + chunk3 . -
def foo(x)
-  return 3
-end
+
chunk1
+
+chunk2
+
+
+
+chunk3
 
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1960 +src line: 1839 . -~~~~ ruby startline=3 $%@#$ -def foo(x) - return 3 -end -~~~~~~~ + chunk1 + + chunk2 . -
def foo(x)
-  return 3
-end
+
chunk1
+  
+  chunk2
 
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1974 +src line: 1854 . -````; -```` +Foo + bar + . -
+

Foo +bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1984 +src line: 1868 . -``` aa ``` -foo + foo +bar . -

aa -foo

+
foo
+
+

bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 1995 +src line: 1881 . -~~~ aa ``` ~~~ -foo -~~~ +# Heading + foo +Heading +------ + foo +---- . -
foo
+

Heading

+
foo
+
+

Heading

+
foo
 
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2007 +src line: 1901 . -``` -``` aaa -``` + foo + bar . -
``` aaa
+
    foo
+bar
 
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2086 +src line: 1914 . -
-
-**Hello**,
 
-_world_.
-
-
+ + foo + + . -
-
-**Hello**,
-

world. -

-
+
foo
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2115 +src line: 1928 . - - - - -
- hi -
- -okay. + foo . - - - - -
- hi -
-

okay.

+
foo  
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2137 +src line: 1983 . -
-*foo* +
<
+ >
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2161 +src line: 2010 . -
+`` +foo +`` +. +

foo

+. -*Markdown* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 2021 -
. -
-

Markdown

-
+``` +aaa +~~~ +``` +. +
aaa
+~~~
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2177 +src line: 2033 . -
-
+~~~ +aaa +``` +~~~ . -
-
+
aaa
+```
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2188 +src line: 2047 . -
-
+```` +aaa +``` +`````` . -
-
+
aaa
+```
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2200 +src line: 2059 . -
-*foo* - -*bar* +~~~~ +aaa +~~~ +~~~~ . -
-*foo* -

bar

+
aaa
+~~~
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2216 +src line: 2074 . -
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2225 +src line: 2081 . -
+``` +aaa +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2237 +src line: 2094 . -
``` +> aaa + +bbb . -
+
aaa
+
+ +

bbb

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

+  
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2256 +src line: 2124 . -
-foo -
+``` +``` . -
-foo -
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2273 +src line: 2136 . -
-``` c -int x = 33; + ``` + aaa +aaa ``` . -
-``` c -int x = 33; -``` +
aaa
+aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2290 +src line: 2148 . - -*bar* - + ``` +aaa + aaa +aaa + ``` . - -*bar* - +
aaa
+aaa
+aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2303 +src line: 2162 . - -*bar* - + ``` + aaa + aaa + aaa + ``` . - -*bar* - +
aaa
+ aaa
+aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2314 +src line: 2178 . - -*bar* - + ``` + aaa + ``` . - -*bar* - +
```
+aaa
+```
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2325 +src line: 2193 . - -*bar* +``` +aaa + ``` . - -*bar* +
aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2340 +src line: 2203 . - -*foo* - + ``` +aaa + ``` . - -*foo* - +
aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2355 +src line: 2215 . - - -*foo* - - +``` +aaa + ``` . - -

foo

-
+
aaa
+    ```
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2373 +src line: 2229 . -*foo* +``` ``` +aaa . -

foo

+

+aaa

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2389 +src line: 2238 . -

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

-import Text.HTML.TagSoup
 
-main :: IO ()
-main = print $ parseTags tags
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src line: 2252
+
+.
+foo
+```
+bar
+```
+baz
+.
+

foo

+
bar
 
-

okay

+

baz

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

okay

+

foo

+
bar
+
+

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2429 +src line: 2291 . - -okay +```ruby +def foo(x) + return 3 +end +``` . - -

okay

+
def foo(x)
+  return 3
+end
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2452 +src line: 2305 . - -*foo* -. - -

foo

-. - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2503 - -. -*bar* -*baz* +~~~ aa ``` ~~~ +foo +~~~ . -*bar* -

baz

+
foo
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2515 +src line: 2352 . -1. *bar* +``` +``` aaa +``` . -1. *bar* +
``` aaa
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2528 +src line: 2431 . - -okay +_world_. +
+ . - -

okay

+
+
+**Hello**,
+

world. +

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2546 +src line: 2460 . -'; + + + + +
+ hi +
-?> -okay +okay. . -'; - -?> -

okay

+ + + + +
+ hi +
+

okay.

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2565 +src line: 2482 . - + +*foo* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2607 +src line: 2506 . - +
- +*Markdown* + +
. - -
<!-- foo -->
-
+
+

Markdown

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2618 +src line: 2522 . -
- -
+
+
. -
-
<div>
-
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2632 +src line: 2533 . -Foo -
-bar +
. -

Foo

-
-bar +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2649 +src line: 2545 .
-bar -
*foo* + +*bar* .
-bar -
*foo* +

bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2664 +src line: 2561 . -Foo -
-baz +
Foo - -baz

+
- -*Emphasized* text. - -
+
-

Emphasized text.

-
+
-*Emphasized* text. -
+
-*Emphasized* text. -
+
- - - - -Hi - - - - - + . - - - - -
-Hi -
+ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2767 +src line: 2601 . - - - - - - - - -
- Hi -
+
+foo +
. - - -
<td>
-  Hi
-</td>
-
- -
+
+foo +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2815 +src line: 2618 . -[foo]: /url "title" - -[foo] +
+``` c +int x = 33; +``` . -

foo

+
+``` c +int x = 33; +``` . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2824 - -. - [foo]: - /url - 'the title' +src line: 2635 -[foo] . -

foo

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

Foo*bar]

+ +*bar* + . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2844 +src line: 2659 . -[Foo bar]: - -'title' - -[Foo bar] + +*bar* + . -

Foo bar

+ +*bar* + . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2857 +src line: 2670 . -[foo]: /url ' -title -line1 -line2 -' - -[foo] + +*bar* . -

foo

+ +*bar* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2876 +src line: 2685 . -[foo]: /url 'title - -with blank line' - -[foo] + +*foo* + . -

[foo]: /url 'title

-

with blank line'

-

[foo]

+ +*foo* + . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2891 +src line: 2700 . -[foo]: -/url + -[foo] +*foo* + + . -

foo

+ +

foo

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2903 +src line: 2718 . -[foo]: - -[foo] +*foo* . -

[foo]:

-

[foo]

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2915 +src line: 2734 . -[foo]: <> +

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

foo

+

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

okay

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2926 +src line: 2755 . -[foo]: (baz) + +okay . -

[foo]: (baz)

-

[foo]

+ +

okay

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2939 +src line: 2774 . -[foo]: /url\bar\*baz "foo\"bar\baz" + . -[foo] + . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2962 +src line: 2794 . -[foo] + +okay . -

foo

+ +

okay

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 2975 +src line: 2817 . -[FOO]: /url + +*foo* . -

bar

+ +

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3017 +src line: 2868 . -[foo]: /url "title" ok +*bar* +*baz* . -

[foo]: /url "title" ok

+*bar* +

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3026 +src line: 2880 . -[foo]: /url -"title" ok +1. *bar* . -

"title" ok

+1. *bar* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3037 +src line: 2893 . - [foo]: /url "title" + +okay . -
[foo]: /url "title"
-
-

[foo]

+ +

okay

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3051 - -. -``` -[foo]: /url -``` +src line: 2911 -[foo] -. -
[foo]: /url
-
-

[foo]

. +'; +?> +okay . -Foo -[bar]: /baz +Foo -[bar]: /baz

-

[bar]

+ echo '>'; + +?> +

okay

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3081 +src line: 2930 . -# [Foo] -[foo]: /url -> bar + . -

Foo

-
-

bar

-
+ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3092 +src line: 2939 . -[foo]: /url -bar -=== -[foo] -. -

bar

-

foo

-. + +okay . -[foo]: /url -=== -[foo] -. -

=== -foo

+ +

okay

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

foo, -bar, -baz

+ +
<!-- foo -->
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3136 +src line: 2984 . -[foo] +
-> [foo]: /url +
. -

foo

-
-
+
+
<div>
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3153 +src line: 2998 . -[foo]: /url +Foo +
+bar +
. +

Foo

+
+bar +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3170 +src line: 3015 . -aaa - -bbb +
+bar +
+*foo* . -

aaa

-

bbb

+
+bar +
+*foo* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3182 +src line: 3030 . -aaa -bbb - -ccc -ddd +Foo + +baz . -

aaa -bbb

-

ccc -ddd

+

Foo + +baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3198 +src line: 3071 . -aaa +
+*Emphasized* text. -bbb +
. -

aaa

-

bbb

+
+

Emphasized text.

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3211 +src line: 3084 . - aaa - bbb +
+*Emphasized* text. +
. -

aaa -bbb

+
+*Emphasized* text. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3223 +src line: 3106 . -aaa - bbb - ccc -. -

aaa -bbb -ccc

-. + -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3237 + + + + + +
+Hi +
. - aaa -bbb -. -

aaa -bbb

+ + + + +
+Hi +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3246 +src line: 3133 . - aaa -bbb + + + + + + + + +
+ Hi +
. -
aaa
+
+  
+
<td>
+  Hi
+</td>
 
-

bbb

+ +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3260 +src line: 3182 . -aaa -bbb +[foo]: /url "title" + +[foo] . -

aaa
-bbb

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3277 +src line: 3191 . - - -aaa - - -# aaa + [foo]: + /url + 'the title' - +[foo] . -

aaa

-

aaa

+

foo

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

Foo

-

bar -baz

-
+

Foo*bar]

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3358 +src line: 3211 . -># Foo ->bar -> baz +[Foo bar]: + +'title' + +[Foo bar] . -
-

Foo

-

bar -baz

-
+

Foo bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3373 +src line: 3224 . - > # Foo - > bar - > baz +[foo]: /url ' +title +line1 +line2 +' + +[foo] . -
-

Foo

-

bar -baz

-
+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3388 +src line: 3243 . - > # Foo - > bar - > baz +[foo]: /url 'title + +with blank line' + +[foo] . -
> # Foo
-> bar
-> baz
-
+

[foo]: /url 'title

+

with blank line'

+

[foo]

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3403 +src line: 3258 . -> # Foo -> bar -baz +[foo]: +/url + +[foo] . -
-

Foo

-

bar -baz

-
+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3419 +src line: 3270 . -> bar -baz -> foo +[foo]: + +[foo] . -
-

bar -baz -foo

-
+

[foo]:

+

[foo]

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

foo

-
-
+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3463 +src line: 3293 . -> - foo -- bar +[foo]: (baz) + +[foo] . -
-
    -
  • foo
  • -
-
-
    -
  • bar
  • -
+

[foo]: (baz)

+

[foo]

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

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3494 +src line: 3317 . -> ``` -foo -``` +[foo] + +[foo]: url . -
-
-
-

foo

-
+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3510 +src line: 3329 . -> foo - - bar +[foo] + +[foo]: first +[foo]: second . -
-

foo -- bar

-
+

foo

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

Foo

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

αγω

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3554 +src line: 3366 . -> -> foo -> +[foo]: /url . -
-

foo

-
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3567 +src line: 3374 . -> foo - -> bar +[ +foo +]: /url +bar . -
-

foo

-
-

bar

-
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3589 +src line: 3387 . -> foo -> bar +[foo]: /url "title" ok . -
-

foo -bar

-
+

[foo]: /url "title" ok

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3602 +src line: 3396 . -> foo -> -> bar +[foo]: /url +"title" ok . -
-

foo

-

bar

-
+

"title" ok

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3616 +src line: 3407 . -foo -> bar + [foo]: /url "title" + +[foo] . -

foo

-
-

bar

-
+
[foo]: /url "title"
+
+

[foo]

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3630 +src line: 3421 . -> aaa -*** -> bbb +``` +[foo]: /url +``` + +[foo] . -
-

aaa

-
-
-
-

bbb

-
+
[foo]: /url
+
+

[foo]

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

bar -baz

-
+

Foo +[bar]: /baz

+

[bar]

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

Foo

bar

-

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3671 +src line: 3462 . -> bar -> -baz +[foo]: /url +bar +=== +[foo] . -
-

bar

-
-

baz

+

bar

+

foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3687 +src line: 3472 . -> > > foo -bar +[foo]: /url +=== +[foo] . -
-
-
-

foo -bar

-
-
-
+

=== +foo

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

foo -bar -baz

-
-
-
+

foo, +bar, +baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3724 +src line: 3506 . -> code +[foo] -> not code +> [foo]: /url . +

foo

-
code
-
-
-
-

not code

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3778 +src line: 3528 . -A paragraph -with two lines. - - indented code +aaa -> A block quote. +bbb . -

A paragraph -with two lines.

-
indented code
-
-
-

A block quote.

-
+

aaa

+

bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3800 +src line: 3540 . -1. A paragraph - with two lines. - - indented code +aaa +bbb - > A block quote. +ccc +ddd . -
    -
  1. -

    A paragraph -with two lines.

    -
    indented code
    -
    -
    -

    A block quote.

    -
    -
  2. -
+

aaa +bbb

+

ccc +ddd

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3833 +src line: 3556 . -- one +aaa - two + +bbb . -
    -
  • one
  • -
-

two

+

aaa

+

bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3845 +src line: 3569 . -- one - - two + aaa + bbb . -
    -
  • -

    one

    -

    two

    -
  • -
+

aaa +bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3859 +src line: 3581 . - - one - - two +aaa + bbb + ccc . -
    -
  • one
  • -
-
 two
-
+

aaa +bbb +ccc

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3872 +src line: 3595 . - - one - - two + aaa +bbb . -
    -
  • -

    one

    -

    two

    -
  • -
+

aaa +bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3894 +src line: 3604 . - > > 1. one ->> ->> two + aaa +bbb . -
-
-
    -
  1. -

    one

    -

    two

    -
  2. -
-
-
+
aaa
+
+

bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3921 +src line: 3618 . ->>- one ->> - > > two +aaa +bbb . -
-
-
    -
  • one
  • -
-

two

-
-
+

aaa
+bbb

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3940 +src line: 3635 . --one + -2.two +aaa + + +# aaa + + . -

-one

-

2.two

+

aaa

+

aaa

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3953 +src line: 3703 . -- foo - - - bar +> # Foo +> bar +> baz . -
    -
  • -

    foo

    -

    bar

    -
  • -
+
+

Foo

+

bar +baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3970 +src line: 3718 . -1. foo - - ``` - bar - ``` - - baz - - > bam +># Foo +>bar +> baz . -
    -
  1. -

    foo

    -
    bar
    -
    -

    baz

    -

    bam

    +

    Foo

    +

    bar +baz

    -
  2. -
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 3998 +src line: 3733 . -- Foo - - bar - - - baz + > # Foo + > bar + > baz . -
    -
  • -

    Foo

    -
    bar
    -
    -
    -baz
    -
    -
  • -
+
+

Foo

+

bar +baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4020 +src line: 3748 . -123456789. ok + > # Foo + > bar + > baz . -
    -
  1. ok
  2. -
+
> # Foo
+> bar
+> baz
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4029 +src line: 3763 . -1234567890. not ok +> # Foo +> bar +baz . -

1234567890. not ok

+
+

Foo

+

bar +baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4038 +src line: 3779 . -0. ok +> bar +baz +> foo . -
    -
  1. ok
  2. -
+
+

bar +baz +foo

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4047 +src line: 3803 . -003. ok +> foo +--- . -
    -
  1. ok
  2. -
+
+

foo

+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4058 +src line: 3823 . --1. not ok +> - foo +- bar . -

-1. not ok

+
+
    +
  • foo
  • +
+
+
    +
  • bar
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4081 +src line: 3841 . -- foo - - bar +> foo + bar . -
    -
  • -

    foo

    +
    +
    foo
    +
    +
    bar
     
    -
  • -
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4098 +src line: 3854 . - 10. foo - - bar +> ``` +foo +``` . -
    -
  1. +
    +
    +

    foo

    -
    bar
    -
    -
  2. -
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4117 +src line: 3870 . - indented code - -paragraph - - more code +> foo + - bar . -
indented code
-
-

paragraph

-
more code
-
+
+

foo +- bar

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4132 +src line: 3894 . -1. indented code - - paragraph - - more code +> . -
    -
  1. -
    indented code
    -
    -

    paragraph

    -
    more code
    -
    -
  2. -
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4154 +src line: 3902 . -1. indented code +> +> +> +. +
+
+. - paragraph +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 3914 - more code . -
    -
  1. -
     indented code
    -
    -

    paragraph

    -
    more code
    -
    -
  2. -
+> +> foo +> +. +
+

foo

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

foo

+
+

bar

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4191 +src line: 3949 . -- foo - - bar +> foo +> bar . -
    -
  • foo
  • -
-

bar

+
+

foo +bar

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4208 +src line: 3962 . -- foo - - bar +> foo +> +> bar . -
    -
  • +

    foo

    bar

    -
  • -
+ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4236 +src line: 3976 . -- - foo -- - ``` - bar - ``` -- - baz +foo +> bar . -
    -
  • foo
  • -
  • -
    bar
    -
    -
  • -
  • -
    baz
    -
    -
  • -
+

foo

+
+

bar

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4262 +src line: 3990 . -- - foo +> aaa +*** +> bbb . -
    -
  • foo
  • -
+
+

aaa

+
+
+
+

bbb

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4276 +src line: 4008 . -- - - foo +> bar +baz . -
    -
  • -
-

foo

+
+

bar +baz

+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4290 +src line: 4019 . -- foo -- -- bar +> bar + +baz . -
    -
  • foo
  • -
  • -
  • bar
  • -
+
+

bar

+
+

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4305 +src line: 4031 . -- foo -- -- bar +> bar +> +baz . -
    -
  • foo
  • -
  • -
  • bar
  • -
+
+

bar

+
+

baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4320 +src line: 4047 . -1. foo -2. -3. bar +> > > foo +bar . -
    -
  1. foo
  2. -
  3. -
  4. bar
  5. -
+
+
+
+

foo +bar

+
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4335 +src line: 4062 . -* +>>> foo +> bar +>>baz . -
    -
  • -
+
+
+
+

foo +bar +baz

+
+
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4345 +src line: 4084 . -foo -* +> code -foo -1. +> not code . -

foo -*

-

foo -1.

+
+
code
+
+
+
+

not code

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

    indented code
    @@ -3532,20 +3333,18 @@ with two lines.

    A block quote.

    -
  2. -
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4391 +src line: 4160 . - 1. A paragraph - with two lines. +1. A paragraph + with two lines. - indented code + indented code - > A block quote. + > A block quote. .
  1. @@ -3561,1120 +3360,1334 @@ with two lines.

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4415 +src line: 4193 . - 1. A paragraph - with two lines. - - indented code +- one - > A block quote. + two . -
      -
    1. -

      A paragraph -with two lines.

      -
      indented code
      -
      -
      -

      A block quote.

      -
      -
    2. -
    +
      +
    • one
    • +
    +

    two

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4439 +src line: 4205 . - 1. A paragraph - with two lines. - - indented code +- one - > A block quote. + two . -
    1.  A paragraph
    -    with two lines.
    -
    -        indented code
    -
    -    > A block quote.
    -
    +
      +
    • +

      one

      +

      two

      +
    • +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4469 +src line: 4219 . - 1. A paragraph -with two lines. - - indented code + - one - > A block quote. + two . -
      -
    1. -

      A paragraph -with two lines.

      -
      indented code
      +
        +
      • one
      • +
      +
       two
       
      -
      -

      A block quote.

      -
      -
    2. -
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4493 +src line: 4232 . - 1. A paragraph - with two lines. + - one + + two . -
      -
    1. A paragraph -with two lines.
    2. -
    +
      +
    • +

      one

      +

      two

      +
    • +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4506 +src line: 4254 . -> 1. > Blockquote -continued here. + > > 1. one +>> +>> two .
    +
    1. -
      -

      Blockquote -continued here.

      -
      +

      one

      +

      two

    +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4523 +src line: 4281 . -> 1. > Blockquote -> continued here. +>>- one +>> + > > two .
    -
      -
    1. -

      Blockquote -continued here.

      +
        +
      • one
      • +
      +

      two

      -
    2. -
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4551 +src line: 4300 . -- foo - - bar - - baz - - boo +-one + +2.two . -
      -
    • foo -
        -
      • bar -
          -
        • baz -
            -
          • boo
          • -
          -
        • -
        -
      • -
      -
    • -
    +

    -one

    +

    2.two

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4577 +src line: 4313 . - foo - - bar - - baz - - boo + + + bar .
      -
    • foo
    • -
    • bar
    • -
    • baz
    • -
    • boo
    • +
    • +

      foo

      +

      bar

      +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4594 +src line: 4330 . -10) foo - - bar +1. foo + + ``` + bar + ``` + + baz + + > bam . -
      -
    1. foo -
        -
      • bar
      • -
      +
        +
      1. +

        foo

        +
        bar
        +
        +

        baz

        +
        +

        bam

        +
      . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4610 +src line: 4358 . -10) foo - - bar -. -
        -
      1. foo
      2. -
      -
        -
      • bar
      • -
      -. +- Foo -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4625 + bar -. -- - foo + + baz .
      • -
          -
        • foo
        • -
        +

        Foo

        +
        bar
        +
        +
        +baz
        +
      . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4638 +src line: 4380 . -1. - 2. foo +123456789. ok . -
        -
      1. -
          -
        • -
            -
          1. foo
          2. -
          -
        • -
        -
      2. +
          +
        1. ok
        . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4657 +src line: 4389 . -- # Foo -- Bar - --- - baz +1234567890. not ok . -
          -
        • -

          Foo

          -
        • -
        • -

          Bar

          -baz
        • -
        +

        1234567890. not ok

        . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4893 +src line: 4398 . -- foo -- bar -+ baz +0. ok . -
          -
        • foo
        • -
        • bar
        • -
        -
          -
        • baz
        • -
        +
          +
        1. ok
        2. +
        . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4908 +src line: 4407 . -1. foo -2. bar -3) baz +003. ok . -
          -
        1. foo
        2. -
        3. bar
        4. -
          -
        1. baz
        2. +
        3. ok
        . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4927 - -. -Foo -- bar -- baz -. -

        Foo

        -
          -
        • bar
        • -
        • baz
        • -
        -. - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5004 - -. -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: 5014 +src line: 4418 . -The number of windows in my house is -1. The number of doors is 6. +-1. not ok . -

        The number of windows in my house is

        -
          -
        1. The number of doors is 6.
        2. -
        +

        -1. not ok

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

          -
        • -
        • -

          bar

          -
        • -
        • -

          baz

          +
          bar
          +
        . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5049 +src line: 4458 . -- foo - - bar - - baz - + 10. foo - bim + bar . -
          -
        • foo -
            -
          • bar -
              +
              1. -

                baz

                -

                bim

                -
              2. -
            -
          • -
          +

          foo

          +
          bar
          +
        • -
        +
      . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5079 +src line: 4477 . -- foo -- bar + indented code - +paragraph -- baz -- bim + more code . -
        -
      • foo
      • -
      • bar
      • -
      - -
        -
      • baz
      • -
      • bim
      • -
      +
      indented code
      +
      +

      paragraph

      +
      more code
      +
      . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5100 +src line: 4492 . -- foo - - notcode - -- foo +1. indented code - + paragraph - code + more code . -
        -
      • -

        foo

        -

        notcode

        -
      • +
        1. -

          foo

          -
        2. -
      - -
      code
      +
      indented code
      +
      +

      paragraph

      +
      more code
       
      +
    2. +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5131 +src line: 4514 . -- a - - b - - c - - d - - e - - f -- g +1. indented code + + paragraph + + more code . -
      -
    • a
    • -
    • b
    • -
    • c
    • -
    • d
    • -
    • e
    • -
    • f
    • -
    • g
    • -
    +
      +
    1. +
       indented code
      +
      +

      paragraph

      +
      more code
      +
      +
    2. +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5152 +src line: 4541 . -1. a - - 2. b + foo - 3. c +bar . -
      -
    1. -

      a

      -
    2. -
    3. -

      b

      -
    4. -
    5. -

      c

      -
    6. -
    +

    foo

    +

    bar

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5176 +src line: 4551 . -- a - - b - - c - - d - - e +- foo + + bar .
      -
    • a
    • -
    • b
    • -
    • c
    • -
    • d -- e
    • +
    • foo
    +

    bar

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5196 +src line: 4568 . -1. a - - 2. b +- foo - 3. c + bar . -
      -
    1. -

      a

      -
    2. +
      • -

        b

        +

        foo

        +

        bar

      • -
    -
    3. c
    -
    + . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5219 +src line: 4595 . -- a -- b - -- c +- + foo +- + ``` + bar + ``` +- + baz .
      +
    • foo
    • -

      a

      -
    • -
    • -

      b

      +
      bar
      +
    • -

      c

      +
      baz
      +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5241 +src line: 4621 . -* a -* - -* c +- + foo .
      -
    • -

      a

      -
    • -
    • -
    • -

      c

      -
    • +
    • foo
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5263 +src line: 4635 . -- a -- b +- - c -- d + foo .
      -
    • -

      a

      -
    • -
    • -

      b

      -

      c

      -
    • -
    • -

      d

      -
    • +
    +

    foo

    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5285 +src line: 4649 . -- a -- b - - [ref]: /url -- d +- foo +- +- bar .
      -
    • -

      a

      -
    • -
    • -

      b

      -
    • -
    • -

      d

      -
    • +
    • foo
    • +
    • +
    • bar
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5308 +src line: 4664 . -- a -- ``` - b - - - ``` -- c +- foo +- +- bar .
      -
    • a
    • -
    • -
      b
      -
      -
      -
      -
    • -
    • c
    • +
    • foo
    • +
    • +
    • bar
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5334 +src line: 4679 . -- a - - b - - c -- d +1. foo +2. +3. bar . -
      -
    • a -
        -
      • -

        b

        -

        c

        -
      • -
      -
    • -
    • d
    • -
    +
      +
    1. foo
    2. +
    3. +
    4. bar
    5. +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5358 +src line: 4694 . -* a - > b - > -* c +* .
      -
    • a -
      -

      b

      -
      -
    • -
    • c
    • +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5378 +src line: 4704 . -- a - > b - ``` - c - ``` -- d +foo +* + +foo +1. . -
      -
    • a -
      -

      b

      -
      -
      c
      -
      -
    • -
    • d
    • -
    +

    foo +*

    +

    foo +1.

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

      A paragraph +with two lines.

      +
      indented code
      +
      +
      +

      A block quote.

      +
      +
    2. +
    . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5410 +src line: 4750 . -- a - - b + 1. A paragraph + with two lines. + + indented code + + > A block quote. . -
      -
    • a -
        -
      • b
      • -
      +
        +
      1. +

        A paragraph +with two lines.

        +
        indented code
        +
        +
        +

        A block quote.

        +
      2. -
    +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5427 +src line: 4774 . -1. ``` - foo - ``` + 1. A paragraph + with two lines. - bar + indented code + + > A block quote. .
  1. -
    foo
    +

    A paragraph +with two lines.

    +
    indented code
     
    -

    bar

    +
    +

    A block quote.

    +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5446 +src line: 4798 . -* foo - * bar + 1. A paragraph + with two lines. - baz + indented code + + > A block quote. . -
    -
  • -

    foo

    -
      -
    • bar
    • -
    -

    baz

    -
  • -
+
1.  A paragraph
+    with two lines.
+
+        indented code
+
+    > A block quote.
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5464 +src line: 4828 . -- a - - b - - c + 1. A paragraph +with two lines. -- d - - e - - f + indented code + + > A block quote. . -
    -
  • -

    a

    -
      -
    • b
    • -
    • c
    • -
    -
  • +
    1. -

      d

      -
        -
      • e
      • -
      • f
      • -
      +

      A paragraph +with two lines.

      +
      indented code
      +
      +
      +

      A block quote.

      +
    2. -
+ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5498 +src line: 4852 . -`hi`lo` + 1. A paragraph + with two lines. . -

hilo`

+
    +
  1. A paragraph +with two lines.
  2. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5512 +src line: 4865 . -\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ +> 1. > Blockquote +continued here. . -

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

+
+
    +
  1. +
    +

    Blockquote +continued here.

    +
    +
  2. +
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5522 +src line: 4882 . -\ \A\a\ \3\φ\« +> 1. > Blockquote +> continued here. . -

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

+
+
    +
  1. +
    +

    Blockquote +continued here.

    +
    +
  2. +
+
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5532 +src line: 4910 . -\*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 +- foo + - bar + - baz + - boo . -

*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

+
    +
  • foo +
      +
    • bar +
        +
      • baz +
          +
        • boo
        • +
        +
      • +
      +
    • +
    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5557 +src line: 4936 . -\\*emphasis* +- foo + - bar + - baz + - boo . -

\emphasis

+
    +
  • foo
  • +
  • bar
  • +
  • baz
  • +
  • boo
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5566 +src line: 4953 . -foo\ -bar +10) foo + - bar . -

foo
-bar

+
    +
  1. foo +
      +
    • bar
    • +
    +
  2. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5578 +src line: 4969 . -`` \[\` `` +10) foo + - bar . -

\[\`

+
    +
  1. foo
  2. +
+
    +
  • bar
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5585 +src line: 4984 . - \[\] +- - foo . -
\[\]
-
+
    +
  • +
      +
    • foo
    • +
    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5593 +src line: 4997 . -~~~ -\[\] -~~~ +1. - 2. foo . -
\[\]
-
+
    +
  1. +
      +
    • +
        +
      1. foo
      2. +
      +
    • +
    +
  2. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5603 +src line: 5016 . - +- # Foo +- Bar + --- + baz . -

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

+
    +
  • +

    Foo

    +
  • +
  • +

    Bar

    +baz
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5610 +src line: 5252 . - +- foo +- bar ++ baz . - +
    +
  • foo
  • +
  • bar
  • +
+
    +
  • baz
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5620 +src line: 5267 . -[foo](/bar\* "ti\*tle") +1. foo +2. bar +3) baz . -

foo

+
    +
  1. foo
  2. +
  3. bar
  4. +
+
    +
  1. baz
  2. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5627 +src line: 5286 . -[foo] +Foo +- bar +- baz +. +

Foo

+
    +
  • bar
  • +
  • baz
  • +
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 5363 -[foo]: /bar\* "ti\*tle" . -

foo

+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: 5636 +src line: 5373 . -``` foo\+bar -foo -``` +The number of windows in my house is +1. The number of doors is 6. . -
foo
+

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: 5673 +src line: 5490 . -  & © Æ Ď -¾ ℋ ⅆ -∲ ≧̸ +- a + - b + - c + - d + - e + - f +- g . -

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

+
    +
  • a
  • +
  • b
  • +
  • c
  • +
  • d
  • +
  • e
  • +
  • f
  • +
  • g
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5692 +src line: 5511 . -# Ӓ Ϡ � +1. a + + 2. b + + 3. c . -

# Ӓ Ϡ �

+
    +
  1. +

    a

    +
  2. +
  3. +

    b

    +
  4. +
  5. +

    c

    +
  6. +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5705 +src line: 5535 . -" ആ ಫ +- a + - b + - c + - d + - e . -

" ആ ಫ

+
    +
  • a
  • +
  • b
  • +
  • c
  • +
  • d +- e
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5714 +src line: 5555 . -  &x; &#; &#x; -� -&#abcdef0; -&ThisIsNotDefined; &hi?; +1. a + + 2. b + + 3. c . -

&nbsp &x; &#; &#x; -&#987654321; -&#abcdef0; -&ThisIsNotDefined; &hi?;

+
    +
  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: 5731 +src line: 5644 . -© +- a +- b + + [ref]: /url +- d . -

&copy

+
    +
  • +

    a

    +
  • +
  • +

    b

    +
  • +
  • +

    d

    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5741 +src line: 5667 . -&MadeUpEntity; -. -

&MadeUpEntity;

-. +- a +- ``` + b -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5752 + ``` +- c . - -. - +
    +
  • a
  • +
  • +
    b
    +
    +
    +
    +
  • +
  • c
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5759 +src line: 5693 . -[foo](/föö "föö") +- a + - b + + c +- d . -

foo

+
    +
  • a +
      +
    • +

      b

      +

      c

      +
    • +
    +
  • +
  • d
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5766 +src line: 5717 . -[foo] - -[foo]: /föö "föö" +* a + > b + > +* c . -

foo

+
    +
  • a +
    +

    b

    +
    +
  • +
  • c
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5775 +src line: 5737 . -``` föö -foo -``` +- a + > b + ``` + c + ``` +- d . -
foo
+
    +
  • a +
    +

    b

    +
    +
    c
     
    +
  • +
  • d
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5788 +src line: 5760 . -`föö` +- a . -

f&ouml;&ouml;

+
    +
  • a
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5795 +src line: 5769 . - föfö +- a + - b . -
f&ouml;f&ouml;
-
+
    +
  • a +
      +
    • b
    • +
    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5807 +src line: 5786 . -*foo* -*foo* +1. ``` + foo + ``` + + bar . -

*foo* -foo

+
    +
  1. +
    foo
    +
    +

    bar

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

* foo

    -
  • foo
  • +
  • +

    foo

    +
      +
    • bar
    • +
    +

    baz

    +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5826 - -. -foo bar -. -

foo +src line: 5823 -bar

. +- a + - b + - c -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5834 - -. - foo +- d + - e + - f . -

foo

+
    +
  • +

    a

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

    d

    +
      +
    • e
    • +
    • f
    • +
    +
  • +
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5841 +src line: 5857 . -[a](url "tit") +`hi`lo` . -

[a](url "tit")

+

hilo`

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5869 +src line: 5889 . `foo` @@ -4683,7 +4696,7 @@ src line: 5869 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5880 +src line: 5900 . `` foo ` bar `` @@ -4692,7 +4705,7 @@ src line: 5880 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5890 +src line: 5910 . ` `` ` @@ -4701,7 +4714,7 @@ src line: 5890 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5898 +src line: 5918 . ` `` ` @@ -4710,7 +4723,7 @@ src line: 5898 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5907 +src line: 5927 . ` a` @@ -4719,7 +4732,7 @@ src line: 5907 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5916 +src line: 5936 . ` b ` @@ -4728,7 +4741,7 @@ src line: 5916 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5924 +src line: 5944 . ` ` @@ -4739,7 +4752,7 @@ src line: 5924 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5935 +src line: 5955 . `` @@ -4752,7 +4765,7 @@ baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5945 +src line: 5965 . `` @@ -4763,7 +4776,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5956 +src line: 5976 . `foo bar @@ -4773,7 +4786,7 @@ baz` . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5973 +src line: 5993 . `foo\`bar` @@ -4782,7 +4795,7 @@ src line: 5973 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5984 +src line: 6004 . ``foo`bar`` @@ -4791,7 +4804,7 @@ src line: 5984 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5990 +src line: 6010 . ` foo `` bar ` @@ -4800,7 +4813,7 @@ src line: 5990 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6002 +src line: 6022 . *foo`*` @@ -4809,7 +4822,7 @@ src line: 6002 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6011 +src line: 6031 . [not a `link](/foo`) @@ -4818,7 +4831,7 @@ src line: 6011 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6021 +src line: 6041 . `` @@ -4827,7 +4840,7 @@ src line: 6021 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6030 +src line: 6050 . ` @@ -4836,7 +4849,7 @@ src line: 6030 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6039 +src line: 6059 . `` @@ -4845,7 +4858,7 @@ src line: 6039 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6048 +src line: 6068 . ` @@ -4854,7 +4867,7 @@ src line: 6048 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6058 +src line: 6078 . ```foo`` @@ -4863,7 +4876,7 @@ src line: 6058 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6065 +src line: 6085 . `foo @@ -4872,7 +4885,7 @@ src line: 6065 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6074 +src line: 6094 . `foo``bar`` @@ -4881,7 +4894,7 @@ src line: 6074 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6291 +src line: 6311 . *foo bar* @@ -4890,7 +4903,7 @@ src line: 6291 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6301 +src line: 6321 . a * foo bar* @@ -4899,7 +4912,7 @@ a * foo bar* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6312 +src line: 6332 . a*"foo"* @@ -4908,7 +4921,7 @@ a*"foo"* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6321 +src line: 6341 . * a * @@ -4917,7 +4930,7 @@ src line: 6321 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6330 +src line: 6350 . foo*bar* @@ -4926,7 +4939,7 @@ foo*bar* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6337 +src line: 6357 . 5*6*78 @@ -4935,7 +4948,7 @@ src line: 6337 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6346 +src line: 6366 . _foo bar_ @@ -4944,7 +4957,7 @@ _foo bar_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6356 +src line: 6376 . _ foo bar_ @@ -4953,7 +4966,7 @@ _ foo bar_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6366 +src line: 6386 . a_"foo"_ @@ -4962,7 +4975,7 @@ a_"foo"_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6375 +src line: 6395 . foo_bar_ @@ -4971,7 +4984,7 @@ foo_bar_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6382 +src line: 6402 . 5_6_78 @@ -4980,7 +4993,7 @@ src line: 6382 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6389 +src line: 6409 . пристаням_стремятся_ @@ -4989,7 +5002,7 @@ src line: 6389 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6399 +src line: 6419 . aa_"bb"_cc @@ -4998,7 +5011,7 @@ aa_"bb"_cc . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6410 +src line: 6430 . foo-_(bar)_ @@ -5007,7 +5020,7 @@ foo-_(bar)_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6422 +src line: 6442 . _foo* @@ -5016,7 +5029,7 @@ _foo* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6432 +src line: 6452 . *foo bar * @@ -5025,7 +5038,7 @@ src line: 6432 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6441 +src line: 6461 . *foo bar @@ -5036,7 +5049,7 @@ src line: 6441 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6454 +src line: 6474 . *(*foo) @@ -5045,7 +5058,7 @@ src line: 6454 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6464 +src line: 6484 . *(*foo*)* @@ -5054,7 +5067,7 @@ src line: 6464 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6473 +src line: 6493 . *foo*bar @@ -5063,7 +5076,7 @@ src line: 6473 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6486 +src line: 6506 . _foo bar _ @@ -5072,7 +5085,7 @@ _foo bar _ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6496 +src line: 6516 . _(_foo) @@ -5081,7 +5094,7 @@ _(_foo) . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6505 +src line: 6525 . _(_foo_)_ @@ -5090,7 +5103,7 @@ _(_foo_)_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6514 +src line: 6534 . _foo_bar @@ -5099,7 +5112,7 @@ _foo_bar . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6521 +src line: 6541 . _пристаням_стремятся @@ -5108,7 +5121,7 @@ _пристаням_стремятся . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6528 +src line: 6548 . _foo_bar_baz_ @@ -5117,7 +5130,7 @@ _foo_bar_baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6539 +src line: 6559 . _(bar)_. @@ -5126,7 +5139,7 @@ _(bar)_. . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6548 +src line: 6568 . **foo bar** @@ -5135,7 +5148,7 @@ src line: 6548 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6558 +src line: 6578 . ** foo bar** @@ -5144,7 +5157,7 @@ src line: 6558 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6569 +src line: 6589 . a**"foo"** @@ -5153,7 +5166,7 @@ a**"foo"** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6578 +src line: 6598 . foo**bar** @@ -5162,7 +5175,7 @@ foo**bar** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6587 +src line: 6607 . __foo bar__ @@ -5171,7 +5184,7 @@ __foo bar__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6597 +src line: 6617 . __ foo bar__ @@ -5180,7 +5193,7 @@ __ foo bar__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6605 +src line: 6625 . __ @@ -5191,7 +5204,7 @@ foo bar__

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6617 +src line: 6637 . a__"foo"__ @@ -5200,7 +5213,7 @@ a__"foo"__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6626 +src line: 6646 . foo__bar__ @@ -5209,7 +5222,7 @@ foo__bar__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6633 +src line: 6653 . 5__6__78 @@ -5218,7 +5231,7 @@ src line: 6633 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6640 +src line: 6660 . пристаням__стремятся__ @@ -5227,7 +5240,7 @@ src line: 6640 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6647 +src line: 6667 . __foo, __bar__, baz__ @@ -5236,7 +5249,7 @@ __foo, __bar__, baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6658 +src line: 6678 . foo-__(bar)__ @@ -5245,7 +5258,7 @@ foo-__(bar)__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6671 +src line: 6691 . **foo bar ** @@ -5254,7 +5267,7 @@ src line: 6671 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6684 +src line: 6704 . **(**foo) @@ -5263,7 +5276,7 @@ src line: 6684 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6694 +src line: 6714 . *(**foo**)* @@ -5272,7 +5285,7 @@ src line: 6694 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6701 +src line: 6721 . **Gomphocarpus (*Gomphocarpus physocarpus*, syn. @@ -5283,7 +5296,7 @@ src line: 6701 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6710 +src line: 6730 . **foo "*bar*" foo** @@ -5292,7 +5305,7 @@ src line: 6710 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6719 +src line: 6739 . **foo**bar @@ -5301,7 +5314,7 @@ src line: 6719 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6731 +src line: 6751 . __foo bar __ @@ -5310,7 +5323,7 @@ __foo bar __ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6741 +src line: 6761 . __(__foo) @@ -5319,7 +5332,7 @@ __(__foo) . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6751 +src line: 6771 . _(__foo__)_ @@ -5328,7 +5341,7 @@ _(__foo__)_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6760 +src line: 6780 . __foo__bar @@ -5337,7 +5350,7 @@ __foo__bar . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6767 +src line: 6787 . __пристаням__стремятся @@ -5346,7 +5359,7 @@ __пристаням__стремятся . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6774 +src line: 6794 . __foo__bar__baz__ @@ -5355,7 +5368,7 @@ __foo__bar__baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6785 +src line: 6805 . __(bar)__. @@ -5364,7 +5377,7 @@ __(bar)__. . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6797 +src line: 6817 . *foo [bar](/url)* @@ -5373,7 +5386,7 @@ src line: 6797 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6804 +src line: 6824 . *foo @@ -5384,7 +5397,7 @@ bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6816 +src line: 6836 . _foo __bar__ baz_ @@ -5393,7 +5406,7 @@ _foo __bar__ baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6823 +src line: 6843 . _foo _bar_ baz_ @@ -5402,7 +5415,7 @@ _foo _bar_ baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6830 +src line: 6850 . __foo_ bar_ @@ -5411,7 +5424,7 @@ __foo_ bar_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6837 +src line: 6857 . *foo *bar** @@ -5420,7 +5433,7 @@ src line: 6837 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6844 +src line: 6864 . *foo **bar** baz* @@ -5429,7 +5442,7 @@ src line: 6844 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6850 +src line: 6870 . *foo**bar**baz* @@ -5438,7 +5451,7 @@ src line: 6850 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6874 +src line: 6894 . *foo**bar* @@ -5447,7 +5460,7 @@ src line: 6874 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6887 +src line: 6907 . ***foo** bar* @@ -5456,7 +5469,7 @@ src line: 6887 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6894 +src line: 6914 . *foo **bar*** @@ -5465,7 +5478,7 @@ src line: 6894 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6901 +src line: 6921 . *foo**bar*** @@ -5474,7 +5487,7 @@ src line: 6901 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6912 +src line: 6932 . foo***bar***baz @@ -5483,7 +5496,7 @@ foo***bar***baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6918 +src line: 6938 . foo******bar*********baz @@ -5492,7 +5505,7 @@ foo******bar*********baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6927 +src line: 6947 . *foo **bar *baz* bim** bop* @@ -5501,7 +5514,7 @@ src line: 6927 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6934 +src line: 6954 . *foo [*bar*](/url)* @@ -5510,7 +5523,7 @@ src line: 6934 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6943 +src line: 6963 . ** is not an empty emphasis @@ -5519,7 +5532,7 @@ src line: 6943 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6950 +src line: 6970 . **** is not an empty strong emphasis @@ -5528,7 +5541,7 @@ src line: 6950 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6963 +src line: 6983 . **foo [bar](/url)** @@ -5537,7 +5550,7 @@ src line: 6963 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6970 +src line: 6990 . **foo @@ -5548,7 +5561,7 @@ bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6982 +src line: 7002 . __foo _bar_ baz__ @@ -5557,7 +5570,7 @@ __foo _bar_ baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6989 +src line: 7009 . __foo __bar__ baz__ @@ -5566,7 +5579,7 @@ __foo __bar__ baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 6996 +src line: 7016 . ____foo__ bar__ @@ -5575,7 +5588,7 @@ ____foo__ bar__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7003 +src line: 7023 . **foo **bar**** @@ -5584,7 +5597,7 @@ src line: 7003 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7010 +src line: 7030 . **foo *bar* baz** @@ -5593,7 +5606,7 @@ src line: 7010 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7017 +src line: 7037 . **foo*bar*baz** @@ -5602,7 +5615,7 @@ src line: 7017 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7024 +src line: 7044 . ***foo* bar** @@ -5611,7 +5624,7 @@ src line: 7024 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7031 +src line: 7051 . **foo *bar*** @@ -5620,7 +5633,7 @@ src line: 7031 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7040 +src line: 7060 . **foo *bar **baz** @@ -5631,7 +5644,7 @@ bim bop

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7049 +src line: 7069 . **foo [*bar*](/url)** @@ -5640,7 +5653,7 @@ src line: 7049 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7058 +src line: 7078 . __ is not an empty emphasis @@ -5649,7 +5662,7 @@ __ is not an empty emphasis . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7065 +src line: 7085 . ____ is not an empty strong emphasis @@ -5658,7 +5671,7 @@ ____ is not an empty strong emphasis . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7075 +src line: 7095 . foo *** @@ -5667,7 +5680,7 @@ foo *** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7082 +src line: 7102 . foo *\** @@ -5676,7 +5689,7 @@ foo *\** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7089 +src line: 7109 . foo *_* @@ -5685,7 +5698,7 @@ foo *_* . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7096 +src line: 7116 . foo ***** @@ -5694,7 +5707,7 @@ foo ***** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7103 +src line: 7123 . foo **\*** @@ -5703,7 +5716,7 @@ foo **\*** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7110 +src line: 7130 . foo **_** @@ -5712,7 +5725,7 @@ foo **_** . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7121 +src line: 7141 . **foo* @@ -5721,7 +5734,7 @@ src line: 7121 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7128 +src line: 7148 . *foo** @@ -5730,7 +5743,7 @@ src line: 7128 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7135 +src line: 7155 . ***foo** @@ -5739,7 +5752,7 @@ src line: 7135 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7142 +src line: 7162 . ****foo* @@ -5748,7 +5761,7 @@ src line: 7142 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7149 +src line: 7169 . **foo*** @@ -5757,7 +5770,7 @@ src line: 7149 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7156 +src line: 7176 . *foo**** @@ -5766,7 +5779,7 @@ src line: 7156 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7166 +src line: 7186 . foo ___ @@ -5775,7 +5788,7 @@ foo ___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7173 +src line: 7193 . foo _\__ @@ -5784,7 +5797,7 @@ foo _\__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7180 +src line: 7200 . foo _*_ @@ -5793,7 +5806,7 @@ foo _*_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7187 +src line: 7207 . foo _____ @@ -5802,7 +5815,7 @@ foo _____ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7194 +src line: 7214 . foo __\___ @@ -5811,7 +5824,7 @@ foo __\___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7201 +src line: 7221 . foo __*__ @@ -5820,7 +5833,7 @@ foo __*__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7208 +src line: 7228 . __foo_ @@ -5829,7 +5842,7 @@ __foo_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7219 +src line: 7239 . _foo__ @@ -5838,7 +5851,7 @@ _foo__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7226 +src line: 7246 . ___foo__ @@ -5847,7 +5860,7 @@ ___foo__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7233 +src line: 7253 . ____foo_ @@ -5856,7 +5869,7 @@ ____foo_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7240 +src line: 7260 . __foo___ @@ -5865,7 +5878,7 @@ __foo___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7247 +src line: 7267 . _foo____ @@ -5874,7 +5887,7 @@ _foo____ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7257 +src line: 7277 . **foo** @@ -5883,7 +5896,7 @@ src line: 7257 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7264 +src line: 7284 . *_foo_* @@ -5892,7 +5905,7 @@ src line: 7264 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7271 +src line: 7291 . __foo__ @@ -5901,7 +5914,7 @@ __foo__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7278 +src line: 7298 . _*foo*_ @@ -5910,7 +5923,7 @@ _*foo*_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7288 +src line: 7308 . ****foo**** @@ -5919,7 +5932,7 @@ src line: 7288 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7295 +src line: 7315 . ____foo____ @@ -5928,7 +5941,7 @@ ____foo____ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7306 +src line: 7326 . ******foo****** @@ -5937,7 +5950,7 @@ src line: 7306 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7315 +src line: 7335 . ***foo*** @@ -5946,7 +5959,7 @@ src line: 7315 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7322 +src line: 7342 . _____foo_____ @@ -5955,7 +5968,7 @@ _____foo_____ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7331 +src line: 7351 . *foo _bar* baz_ @@ -5964,7 +5977,7 @@ src line: 7331 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7338 +src line: 7358 . *foo __bar *baz bim__ bam* @@ -5973,7 +5986,7 @@ src line: 7338 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7347 +src line: 7367 . **foo **bar baz** @@ -5982,7 +5995,7 @@ src line: 7347 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7354 +src line: 7374 . *foo *bar baz* @@ -5991,7 +6004,7 @@ src line: 7354 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7363 +src line: 7383 . *[bar*](/url) @@ -6000,7 +6013,7 @@ src line: 7363 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7370 +src line: 7390 . _foo [bar_](/url) @@ -6009,7 +6022,7 @@ _foo [bar_](/url) . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7377 +src line: 7397 . * @@ -6018,7 +6031,7 @@ src line: 7377 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7384 +src line: 7404 . **
@@ -6027,7 +6040,7 @@ src line: 7384 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7391 +src line: 7411 . __ @@ -6036,7 +6049,7 @@ __ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7398 +src line: 7418 . *a `*`* @@ -6045,7 +6058,7 @@ src line: 7398 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7405 +src line: 7425 . _a `_`_ @@ -6054,7 +6067,7 @@ _a `_`_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7412 +src line: 7432 . **a @@ -6063,7 +6076,7 @@ src line: 7412 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7419 +src line: 7439 . __a @@ -6072,7 +6085,7 @@ __a . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7502 +src line: 7527 . [link](/uri "title") @@ -6081,7 +6094,7 @@ src line: 7502 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7511 +src line: 7537 . [link](/uri) @@ -6090,7 +6103,16 @@ src line: 7511 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7520 +src line: 7543 + +. +[](./target.md) +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7550 . [link]() @@ -6099,7 +6121,7 @@ src line: 7520 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7527 +src line: 7557 . [link](<>) @@ -6108,7 +6130,16 @@ src line: 7527 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7536 +src line: 7564 + +. +[]() +. +

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7573 . [link](/my uri) @@ -6117,7 +6148,7 @@ src line: 7536 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7542 +src line: 7579 . [link]() @@ -6126,7 +6157,7 @@ src line: 7542 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7551 +src line: 7588 . [link](foo @@ -6137,7 +6168,7 @@ bar)

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

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7570 +src line: 7607 . [a]() @@ -6157,7 +6188,7 @@ src line: 7570 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7578 +src line: 7615 . [link]() @@ -6166,7 +6197,7 @@ src line: 7578 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7587 +src line: 7624 . [a]([link](foo(and(bar))

+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 7661 . [link](foo\(and\(bar\)) @@ -6206,7 +6246,7 @@ src line: 7617 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7624 +src line: 7668 . [link]() @@ -6215,7 +6255,7 @@ src line: 7624 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7634 +src line: 7678 . [link](foo\)\:) @@ -6224,7 +6264,7 @@ src line: 7634 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7643 +src line: 7687 . [link](#fragment) @@ -6239,7 +6279,7 @@ src line: 7643 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7659 +src line: 7703 . [link](foo\bar) @@ -6248,7 +6288,7 @@ src line: 7659 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7675 +src line: 7719 . [link](foo%20bä) @@ -6257,7 +6297,7 @@ src line: 7675 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7686 +src line: 7730 . [link]("title") @@ -6266,7 +6306,7 @@ src line: 7686 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7695 +src line: 7739 . [link](/url "title") @@ -6279,7 +6319,7 @@ src line: 7695 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7709 +src line: 7753 . [link](/url "title \""") @@ -6288,7 +6328,7 @@ src line: 7709 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7719 +src line: 7764 . [link](/url "title") @@ -6297,7 +6337,7 @@ src line: 7719 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7728 +src line: 7773 . [link](/url "title "and" title") @@ -6306,7 +6346,7 @@ src line: 7728 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7737 +src line: 7782 . [link](/url 'title "and" title') @@ -6315,7 +6355,7 @@ src line: 7737 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7761 +src line: 7807 . [link]( /uri @@ -6325,7 +6365,7 @@ src line: 7761 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7772 +src line: 7818 . [link] (/uri) @@ -6334,7 +6374,7 @@ src line: 7772 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7782 +src line: 7828 . [link [foo [bar]]](/uri) @@ -6343,7 +6383,7 @@ src line: 7782 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7789 +src line: 7835 . [link] bar](/uri) @@ -6352,7 +6392,7 @@ src line: 7789 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7796 +src line: 7842 . [link [bar](/uri) @@ -6361,7 +6401,7 @@ src line: 7796 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7803 +src line: 7849 . [link \[bar](/uri) @@ -6370,7 +6410,7 @@ src line: 7803 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7812 +src line: 7858 . [link *foo **bar** `#`*](/uri) @@ -6379,7 +6419,7 @@ src line: 7812 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7819 +src line: 7865 . [![moon](moon.jpg)](/uri) @@ -6388,7 +6428,7 @@ src line: 7819 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7828 +src line: 7874 . [foo [bar](/uri)](/uri) @@ -6397,7 +6437,7 @@ src line: 7828 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7835 +src line: 7881 . [foo *[bar [baz](/uri)](/uri)*](/uri) @@ -6406,7 +6446,7 @@ src line: 7835 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7842 +src line: 7888 . ![[[foo](uri1)](uri2)](uri3) @@ -6415,7 +6455,7 @@ src line: 7842 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7852 +src line: 7898 . *[foo*](/uri) @@ -6424,7 +6464,7 @@ src line: 7852 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7859 +src line: 7905 . [foo *bar](baz*) @@ -6433,7 +6473,7 @@ src line: 7859 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7869 +src line: 7915 . *foo [bar* baz] @@ -6442,7 +6482,7 @@ src line: 7869 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7879 +src line: 7925 . [foo @@ -6451,7 +6491,7 @@ src line: 7879 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7886 +src line: 7932 . [foo`](/uri)` @@ -6460,7 +6500,7 @@ src line: 7886 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7893 +src line: 7939 . [foo @@ -6469,7 +6509,7 @@ src line: 7893 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7931 +src line: 7977 . [foo][bar] @@ -6480,7 +6520,7 @@ src line: 7931 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7946 +src line: 7992 . [link [foo [bar]]][ref] @@ -6491,7 +6531,7 @@ src line: 7946 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7955 +src line: 8001 . [link \[bar][ref] @@ -6502,7 +6542,7 @@ src line: 7955 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7966 +src line: 8012 . [link *foo **bar** `#`*][ref] @@ -6513,7 +6553,7 @@ src line: 7966 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7975 +src line: 8021 . [![moon](moon.jpg)][ref] @@ -6524,7 +6564,7 @@ src line: 7975 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7986 +src line: 8032 . [foo [bar](/uri)][ref] @@ -6535,7 +6575,7 @@ src line: 7986 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 7995 +src line: 8041 . [foo *bar [baz][ref]*][ref] @@ -6546,7 +6586,7 @@ src line: 7995 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8010 +src line: 8056 . *[foo*][ref] @@ -6557,18 +6597,18 @@ src line: 8010 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8019 +src line: 8065 . -[foo *bar][ref] +[foo *bar][ref]* [ref]: /uri . -

foo *bar

+

foo *bar*

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8031 +src line: 8077 . [foo @@ -6579,7 +6619,7 @@ src line: 8031 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8040 +src line: 8086 . [foo`][ref]` @@ -6590,7 +6630,7 @@ src line: 8040 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8049 +src line: 8095 . [foo @@ -6601,7 +6641,7 @@ src line: 8049 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8060 +src line: 8106 . [foo][BaR] @@ -6612,18 +6652,18 @@ src line: 8060 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8071 +src line: 8117 . -[Толпой][Толпой] is a Russian word. +[ẞ] -[ТОЛПОЙ]: /url +[SS]: /url . -

Толпой is a Russian word.

+

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8083 +src line: 8129 . [Foo @@ -6635,7 +6675,7 @@ src line: 8083 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8096 +src line: 8142 . [foo] [bar] @@ -6646,7 +6686,7 @@ src line: 8096 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8105 +src line: 8151 . [foo] @@ -6659,7 +6699,7 @@ src line: 8105 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8146 +src line: 8192 . [foo]: /url1 @@ -6672,7 +6712,7 @@ src line: 8146 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8161 +src line: 8207 . [bar][foo\!] @@ -6683,7 +6723,7 @@ src line: 8161 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8173 +src line: 8219 . [foo][ref[] @@ -6695,7 +6735,7 @@ src line: 8173 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8183 +src line: 8229 . [foo][ref[bar]] @@ -6707,7 +6747,7 @@ src line: 8183 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8193 +src line: 8239 . [[[foo]]] @@ -6719,7 +6759,7 @@ src line: 8193 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8203 +src line: 8249 . [foo][ref\[] @@ -6730,7 +6770,7 @@ src line: 8203 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8214 +src line: 8260 . [bar\\]: /uri @@ -6741,7 +6781,7 @@ src line: 8214 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8225 +src line: 8272 . [] @@ -6753,7 +6793,7 @@ src line: 8225 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8235 +src line: 8282 . [ @@ -6769,7 +6809,7 @@ src line: 8235 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8258 +src line: 8305 . [foo][] @@ -6780,7 +6820,7 @@ src line: 8258 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8267 +src line: 8314 . [*foo* bar][] @@ -6791,7 +6831,7 @@ src line: 8267 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8278 +src line: 8325 . [Foo][] @@ -6802,7 +6842,7 @@ src line: 8278 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8291 +src line: 8338 . [foo] @@ -6815,7 +6855,7 @@ src line: 8291 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8311 +src line: 8358 . [foo] @@ -6826,7 +6866,7 @@ src line: 8311 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8320 +src line: 8367 . [*foo* bar] @@ -6837,7 +6877,7 @@ src line: 8320 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8329 +src line: 8376 . [[*foo* bar]] @@ -6848,7 +6888,7 @@ src line: 8329 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8338 +src line: 8385 . [[bar [foo] @@ -6859,7 +6899,7 @@ src line: 8338 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8349 +src line: 8396 . [Foo] @@ -6870,7 +6910,7 @@ src line: 8349 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8360 +src line: 8407 . [foo] bar @@ -6881,7 +6921,7 @@ src line: 8360 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8372 +src line: 8419 . \[foo] @@ -6892,7 +6932,7 @@ src line: 8372 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8384 +src line: 8431 . [foo*]: /url @@ -6903,7 +6943,7 @@ src line: 8384 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8396 +src line: 8443 . [foo][bar] @@ -6915,7 +6955,7 @@ src line: 8396 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8405 +src line: 8452 . [foo][] @@ -6926,7 +6966,7 @@ src line: 8405 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8415 +src line: 8462 . [foo]() @@ -6937,7 +6977,7 @@ src line: 8415 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8423 +src line: 8470 . [foo](not a link) @@ -6948,7 +6988,7 @@ src line: 8423 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8434 +src line: 8481 . [foo][bar][baz] @@ -6959,7 +6999,7 @@ src line: 8434 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8446 +src line: 8493 . [foo][bar][baz] @@ -6971,7 +7011,7 @@ src line: 8446 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8459 +src line: 8506 . [foo][bar][baz] @@ -6983,7 +7023,7 @@ src line: 8459 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8482 +src line: 8529 . ![foo](/url "title") @@ -6992,7 +7032,7 @@ src line: 8482 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8489 +src line: 8536 . ![foo *bar*] @@ -7003,7 +7043,7 @@ src line: 8489 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8498 +src line: 8545 . ![foo ![bar](/url)](/url2) @@ -7012,7 +7052,7 @@ src line: 8498 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8505 +src line: 8552 . ![foo [bar](/url)](/url2) @@ -7021,7 +7061,7 @@ src line: 8505 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8519 +src line: 8566 . ![foo *bar*][] @@ -7032,7 +7072,7 @@ src line: 8519 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8528 +src line: 8575 . ![foo *bar*][foobar] @@ -7043,7 +7083,7 @@ src line: 8528 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8537 +src line: 8584 . ![foo](train.jpg) @@ -7052,7 +7092,7 @@ src line: 8537 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8544 +src line: 8591 . My ![foo bar](/path/to/train.jpg "title" ) @@ -7061,7 +7101,7 @@ My ![foo bar](/path/to/train.jpg "title" ) . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8551 +src line: 8598 . ![foo]() @@ -7070,7 +7110,7 @@ src line: 8551 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8558 +src line: 8605 . ![](/url) @@ -7079,7 +7119,7 @@ src line: 8558 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8567 +src line: 8614 . ![foo][bar] @@ -7090,7 +7130,7 @@ src line: 8567 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8576 +src line: 8623 . ![foo][bar] @@ -7101,7 +7141,7 @@ src line: 8576 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8587 +src line: 8634 . ![foo][] @@ -7112,7 +7152,7 @@ src line: 8587 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8596 +src line: 8643 . ![*foo* bar][] @@ -7123,7 +7163,7 @@ src line: 8596 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8607 +src line: 8654 . ![Foo][] @@ -7134,7 +7174,7 @@ src line: 8607 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8619 +src line: 8666 . ![foo] @@ -7147,7 +7187,7 @@ src line: 8619 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8632 +src line: 8679 . ![foo] @@ -7158,7 +7198,7 @@ src line: 8632 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8641 +src line: 8688 . ![*foo* bar] @@ -7169,7 +7209,7 @@ src line: 8641 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8652 +src line: 8699 . ![[foo]] @@ -7181,7 +7221,7 @@ src line: 8652 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8664 +src line: 8711 . ![Foo] @@ -7192,7 +7232,7 @@ src line: 8664 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8676 +src line: 8723 . !\[foo] @@ -7203,7 +7243,7 @@ src line: 8676 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8688 +src line: 8735 . \![foo] @@ -7214,7 +7254,7 @@ src line: 8688 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8721 +src line: 8768 . @@ -7223,7 +7263,7 @@ src line: 8721 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8728 +src line: 8775 . @@ -7232,7 +7272,7 @@ src line: 8728 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8735 +src line: 8782 . @@ -7241,7 +7281,7 @@ src line: 8735 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8744 +src line: 8791 . @@ -7250,7 +7290,7 @@ src line: 8744 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8756 +src line: 8803 . @@ -7259,7 +7299,7 @@ src line: 8756 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8763 +src line: 8810 . @@ -7268,7 +7308,7 @@ src line: 8763 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8770 +src line: 8817 . @@ -7277,7 +7317,7 @@ src line: 8770 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8777 +src line: 8824 . @@ -7286,7 +7326,7 @@ src line: 8777 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8786 +src line: 8833 . @@ -7295,7 +7335,7 @@ src line: 8786 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8795 +src line: 8842 . @@ -7304,7 +7344,7 @@ src line: 8795 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8817 +src line: 8864 . @@ -7313,7 +7353,7 @@ src line: 8817 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8824 +src line: 8871 . @@ -7322,7 +7362,7 @@ src line: 8824 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8833 +src line: 8880 . @@ -7331,7 +7371,7 @@ src line: 8833 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8842 +src line: 8889 . <> @@ -7340,7 +7380,7 @@ src line: 8842 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8849 +src line: 8896 . < http://foo.bar > @@ -7349,7 +7389,7 @@ src line: 8849 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8856 +src line: 8903 . @@ -7358,7 +7398,7 @@ src line: 8856 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8863 +src line: 8910 . @@ -7367,7 +7407,7 @@ src line: 8863 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8870 +src line: 8917 . http://example.com @@ -7376,7 +7416,7 @@ http://example.com . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8877 +src line: 8924 . foo@bar.example.com @@ -7385,7 +7425,7 @@ foo@bar.example.com . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8959 +src line: 9005 . @@ -7394,7 +7434,7 @@ src line: 8959 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8968 +src line: 9014 . @@ -7403,7 +7443,7 @@ src line: 8968 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8977 +src line: 9023 .

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8988 +src line: 9034 .

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 8999 +src line: 9045 . Foo @@ -7434,7 +7474,7 @@ Foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9008 +src line: 9054 . <33> <__> @@ -7443,7 +7483,7 @@ src line: 9008 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9017 +src line: 9063 .
@@ -7452,7 +7492,7 @@ src line: 9017 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9026 +src line: 9072 . @@ -7503,7 +7543,7 @@ src line: 9068 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9077 +src line: 9123 . foo

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9086 +src line: 9132 . foo @@ -7523,7 +7563,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9095 +src line: 9141 . foo foo --> @@ -7535,7 +7575,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9107 +src line: 9153 . foo @@ -7544,7 +7584,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9116 +src line: 9162 . foo @@ -7553,7 +7593,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9125 +src line: 9171 . foo &<]]> @@ -7562,7 +7602,7 @@ foo &<]]> . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9135 +src line: 9181 . foo
@@ -7571,7 +7611,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9144 +src line: 9190 . foo @@ -7580,7 +7620,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9151 +src line: 9197 . @@ -7589,7 +7629,7 @@ src line: 9151 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9165 +src line: 9211 . foo @@ -7600,7 +7640,7 @@ baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9177 +src line: 9223 . foo\ @@ -7611,7 +7651,7 @@ baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9188 +src line: 9234 . foo @@ -7622,7 +7662,7 @@ baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9199 +src line: 9245 . foo @@ -7633,7 +7673,7 @@ bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9208 +src line: 9254 . foo\ @@ -7644,7 +7684,7 @@ bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9220 +src line: 9266 . *foo @@ -7655,7 +7695,7 @@ bar

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9229 +src line: 9275 . *foo\ @@ -7666,17 +7706,17 @@ bar

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

code span

+

code span

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9248 +src line: 9294 . `code\ @@ -7686,7 +7726,7 @@ span` . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9258 +src line: 9304 .

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9267 +src line: 9313 .

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9280 +src line: 9326 . foo\ @@ -7717,7 +7757,7 @@ foo\ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9287 +src line: 9333 . foo @@ -7726,7 +7766,7 @@ foo . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9294 +src line: 9340 . ### foo\ @@ -7735,7 +7775,7 @@ src line: 9294 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9301 +src line: 9347 . ### foo @@ -7744,7 +7784,7 @@ src line: 9301 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9316 +src line: 9362 . foo @@ -7755,7 +7795,7 @@ baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9328 +src line: 9374 . foo @@ -7766,7 +7806,7 @@ baz

. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9348 +src line: 9394 . hello $.;'there @@ -7775,7 +7815,7 @@ hello $.;'there . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9355 +src line: 9401 . Foo χρῆν @@ -7784,7 +7824,7 @@ Foo χρῆν . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 9364 +src line: 9410 . Multiple spaces diff --git a/test/fixtures/commonmark/spec.txt b/test/fixtures/commonmark/spec.txt index 3913de442..e6f313757 100644 --- a/test/fixtures/commonmark/spec.txt +++ b/test/fixtures/commonmark/spec.txt @@ -1,8 +1,8 @@ --- title: CommonMark Spec author: John MacFarlane -version: 0.29 -date: '2019-04-06' +version: 0.30 +date: '2021-06-19' license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)' ... @@ -270,6 +270,16 @@ of representing the structural distinctions we need to make, and the choice of HTML for the tests makes it possible to run the tests against an implementation without writing an abstract syntax tree renderer. +Note that not every feature of the HTML samples is mandated by +the spec. For example, the spec says what counts as a link +destination, but it doesn't mandate that non-ASCII characters in +the URL be percent-encoded. To use the automatic tests, +implementers will need to provide a renderer that conforms to +the expectations of the spec examples (percent-encoding +non-ASCII characters in URLs). But a conforming implementation +can use a different renderer and may choose not to +percent-encode non-ASCII characters in URLs. + This document is generated from a text file, `spec.txt`, written in Markdown with a small extension for the side-by-side tests. The script `tools/makespec.py` can be used to convert `spec.txt` into @@ -294,37 +304,31 @@ of [characters] rather than bytes. A conforming parser may be limited to a certain encoding. A [line](@) is a sequence of zero or more [characters] -other than newline (`U+000A`) or carriage return (`U+000D`), +other than line feed (`U+000A`) or carriage return (`U+000D`), followed by a [line ending] or by the end of file. -A [line ending](@) is a newline (`U+000A`), a carriage return -(`U+000D`) not followed by a newline, or a carriage return and a -following newline. +A [line ending](@) is a line feed (`U+000A`), a carriage return +(`U+000D`) not followed by a line feed, or a carriage return and a +following line feed. A line containing no characters, or a line containing only spaces (`U+0020`) or tabs (`U+0009`), is called a [blank line](@). The following definitions of character classes will be used in this spec: -A [whitespace character](@) is a space -(`U+0020`), tab (`U+0009`), newline (`U+000A`), line tabulation (`U+000B`), -form feed (`U+000C`), or carriage return (`U+000D`). - -[Whitespace](@) is a sequence of one or more [whitespace -characters]. - A [Unicode whitespace character](@) is any code point in the Unicode `Zs` general category, or a tab (`U+0009`), -carriage return (`U+000D`), newline (`U+000A`), or form feed -(`U+000C`). +line feed (`U+000A`), form feed (`U+000C`), or carriage return (`U+000D`). + +[Unicode whitespace](@) is a sequence of one or more +[Unicode whitespace characters]. -[Unicode whitespace](@) is a sequence of one -or more [Unicode whitespace characters]. +A [tab](@) is `U+0009`. A [space](@) is `U+0020`. -A [non-whitespace character](@) is any character -that is not a [whitespace character]. +An [ASCII control character](@) is a character between `U+0000–1F` (both +including) or `U+007F`. An [ASCII punctuation character](@) is `!`, `"`, `#`, `$`, `%`, `&`, `'`, `(`, `)`, @@ -333,14 +337,14 @@ is `!`, `"`, `#`, `$`, `%`, `&`, `'`, `(`, `)`, `[`, `\`, `]`, `^`, `_`, `` ` `` (U+005B–0060), `{`, `|`, `}`, or `~` (U+007B–007E). -A [punctuation character](@) is an [ASCII +A [Unicode punctuation character](@) is an [ASCII punctuation character] or anything in the general Unicode categories `Pc`, `Pd`, `Pe`, `Pf`, `Pi`, `Po`, or `Ps`. ## Tabs Tabs in lines are not expanded to [spaces]. However, -in contexts where whitespace helps to define block structure, +in contexts where spaces help to define block structure, tabs behave as if they were replaced by spaces with a tab stop of 4 characters. @@ -478,1575 +482,1916 @@ bar For security reasons, the Unicode character `U+0000` must be replaced with the REPLACEMENT CHARACTER (`U+FFFD`). -# Blocks and inlines - -We can think of a document as a sequence of -[blocks](@)---structural elements like paragraphs, block -quotations, lists, headings, rules, and code blocks. Some blocks (like -block quotes and list items) contain other blocks; others (like -headings and paragraphs) contain [inline](@) content---text, -links, emphasized text, images, code spans, and so on. -## Precedence +## Backslash escapes -Indicators of block structure always take precedence over indicators -of inline structure. So, for example, the following is a list with -two items, not a list with one item containing a code span: +Any ASCII punctuation character may be backslash-escaped: ```````````````````````````````` example -- `one -- two` +\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ . -
    -
  • `one
  • -
  • two`
  • -
+

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

```````````````````````````````` -This means that parsing can proceed in two steps: first, the block -structure of the document can be discerned; second, text lines inside -paragraphs, headings, and other block constructs can be parsed for inline -structure. The second step requires information about link reference -definitions that will be available only at the end of the first -step. Note that the first step requires processing lines in sequence, -but the second can be parallelized, since the inline parsing of -one block element does not affect the inline parsing of any other. - -## Container blocks and leaf blocks - -We can divide blocks into two types: -[container blocks](@), -which can contain other blocks, and [leaf blocks](@), -which cannot. - -# Leaf blocks +Backslashes before other characters are treated as literal +backslashes: -This section describes the different kinds of leaf block that make up a -Markdown document. +```````````````````````````````` example +\→\A\a\ \3\φ\« +. +

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

+```````````````````````````````` -## Thematic breaks -A line consisting of 0-3 spaces of indentation, followed by a sequence -of three or more matching `-`, `_`, or `*` characters, each followed -optionally by any number of spaces or tabs, forms a -[thematic break](@). +Escaped characters are treated as regular characters and do +not have their usual Markdown meanings: ```````````````````````````````` example -*** ---- -___ +\*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

```````````````````````````````` -Wrong characters: +If a backslash is itself escaped, the following character is not: ```````````````````````````````` example -+++ +\\*emphasis* . -

+++

+

\emphasis

```````````````````````````````` +A backslash at the end of the line is a [hard line break]: + ```````````````````````````````` example -=== +foo\ +bar . -

===

+

foo
+bar

```````````````````````````````` -Not enough characters: +Backslash escapes do not work in code blocks, code spans, autolinks, or +raw HTML: ```````````````````````````````` example --- -** -__ +`` \[\` `` . -

-- -** -__

+

\[\`

```````````````````````````````` -One to three spaces indent are allowed: - ```````````````````````````````` example - *** - *** - *** + \[\] . -
-
-
+
\[\]
+
```````````````````````````````` -Four spaces is too many: - ```````````````````````````````` example - *** +~~~ +\[\] +~~~ . -
***
+
\[\]
 
```````````````````````````````` ```````````````````````````````` example -Foo - *** + . -

Foo -***

+

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

```````````````````````````````` -More than three characters may be used: - ```````````````````````````````` example -_____________________________________ + . -
+
```````````````````````````````` -Spaces are allowed between the characters: +But they work in all other contexts, including URLs and link titles, +link references, and [info strings] in [fenced code blocks]: ```````````````````````````````` example - - - - +[foo](/bar\* "ti\*tle") . -
+

foo

```````````````````````````````` ```````````````````````````````` example - ** * ** * ** * ** +[foo] + +[foo]: /bar\* "ti\*tle" . -
+

foo

```````````````````````````````` ```````````````````````````````` example -- - - - +``` foo\+bar +foo +``` . -
+
foo
+
```````````````````````````````` -Spaces are allowed at the end: +## Entity and numeric character references -```````````````````````````````` example -- - - - -. -
-```````````````````````````````` +Valid HTML entity references and numeric character references +can be used in place of the corresponding Unicode character, +with the following exceptions: +- Entity and character references are not recognized in code + blocks and code spans. -However, no other characters may occur in the line: +- Entity and character references cannot stand in place of + special characters that define structural elements in + CommonMark. For example, although `*` can be used + in place of a literal `*` character, `*` cannot replace + `*` in emphasis delimiters, bullet list markers, or thematic + breaks. -```````````````````````````````` example -_ _ _ _ a +Conforming CommonMark parsers need not store information about +whether a particular character was represented in the source +using a Unicode character or an entity reference. -a------ +[Entity references](@) consist of `&` + any of the valid +HTML5 entity names + `;`. The +document +is used as an authoritative source for the valid entity +references and their corresponding code points. ----a--- +```````````````````````````````` example +  & © Æ Ď +¾ ℋ ⅆ +∲ ≧̸ . -

_ _ _ _ a

-

a------

-

---a---

+

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

```````````````````````````````` -It is required that all of the [non-whitespace characters] be the same. -So, this is not a thematic break: +[Decimal numeric character +references](@) +consist of `&#` + a string of 1--7 arabic digits + `;`. A +numeric character reference is parsed as the corresponding +Unicode character. Invalid Unicode code points will be replaced by +the REPLACEMENT CHARACTER (`U+FFFD`). For security reasons, +the code point `U+0000` will also be replaced by `U+FFFD`. ```````````````````````````````` example - *-* +# Ӓ Ϡ � . -

-

+

# Ӓ Ϡ �

```````````````````````````````` -Thematic breaks do not need blank lines before or after: +[Hexadecimal numeric character +references](@) consist of `&#` + +either `X` or `x` + a string of 1-6 hexadecimal digits + `;`. +They too are parsed as the corresponding Unicode character (this +time specified with a hexadecimal numeral instead of decimal). ```````````````````````````````` example -- foo -*** -- bar +" ആ ಫ . -
    -
  • foo
  • -
-
-
    -
  • bar
  • -
+

" ആ ಫ

```````````````````````````````` -Thematic breaks can interrupt a paragraph: +Here are some nonentities: ```````````````````````````````` example -Foo -*** -bar +  &x; &#; &#x; +� +&#abcdef0; +&ThisIsNotDefined; &hi?; . -

Foo

-
-

bar

+

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

```````````````````````````````` -If a line of dashes that meets the above conditions for being a -thematic break could also be interpreted as the underline of a [setext -heading], the interpretation as a -[setext heading] takes precedence. Thus, for example, -this is a setext heading, not a paragraph followed by a thematic break: +Although HTML5 does accept some entity references +without a trailing semicolon (such as `©`), these are not +recognized here, because it makes the grammar too ambiguous: ```````````````````````````````` example -Foo ---- -bar +© . -

Foo

-

bar

+

&copy

```````````````````````````````` -When both a thematic break and a list item are possible -interpretations of a line, the thematic break takes precedence: +Strings that are not on the list of HTML5 named entities are not +recognized as entity references either: ```````````````````````````````` example -* Foo -* * * -* Bar +&MadeUpEntity; . -
    -
  • Foo
  • -
-
-
    -
  • Bar
  • -
+

&MadeUpEntity;

```````````````````````````````` -If you want a thematic break in a list item, use a different bullet: +Entity and numeric character references are recognized in any +context besides code spans or code blocks, including +URLs, [link titles], and [fenced code block][] [info strings]: ```````````````````````````````` example -- Foo -- * * * + . -
    -
  • Foo
  • -
  • -
    -
  • -
+
```````````````````````````````` -## ATX headings - -An [ATX heading](@) -consists of a string of characters, parsed as inline content, between an -opening sequence of 1--6 unescaped `#` characters and an optional -closing sequence of any number of unescaped `#` characters. -The opening sequence of `#` characters must be followed by a -[space] or by the end of line. The optional closing sequence of `#`s must be -preceded by a [space] and may be followed by spaces only. The opening -`#` character may be indented 0-3 spaces. The raw contents of the -heading are stripped of leading and trailing spaces before being parsed -as inline content. The heading level is equal to the number of `#` -characters in the opening sequence. +```````````````````````````````` example +[foo](/föö "föö") +. +

foo

+```````````````````````````````` -Simple headings: ```````````````````````````````` example -# foo -## foo -### foo -#### foo -##### foo -###### foo +[foo] + +[foo]: /föö "föö" . -

foo

-

foo

-

foo

-

foo

-
foo
-
foo
+

foo

```````````````````````````````` -More than six `#` characters is not a heading: - ```````````````````````````````` example -####### foo +``` föö +foo +``` . -

####### foo

+
foo
+
```````````````````````````````` -At least one space is required between the `#` characters and the -heading's contents, unless the heading is empty. Note that many -implementations currently do not require the space. However, the -space was required by the -[original ATX implementation](http://www.aaronsw.com/2002/atx/atx.py), -and it helps prevent things like the following from being parsed as -headings: +Entity and numeric character references are treated as literal +text in code spans and code blocks: ```````````````````````````````` example -#5 bolt +`föö` +. +

f&ouml;&ouml;

+```````````````````````````````` -#hashtag + +```````````````````````````````` example + föfö . -

#5 bolt

-

#hashtag

+
f&ouml;f&ouml;
+
```````````````````````````````` -This is not a heading, because the first `#` is escaped: +Entity and numeric character references cannot be used +in place of symbols indicating structure in CommonMark +documents. ```````````````````````````````` example -\## foo +*foo* +*foo* . -

## foo

+

*foo* +foo

```````````````````````````````` +```````````````````````````````` example +* foo -Contents are parsed as inlines: +* foo +. +

* foo

+
    +
  • foo
  • +
+```````````````````````````````` ```````````````````````````````` example -# foo *bar* \*baz\* +foo bar . -

foo bar *baz*

+

foo + +bar

```````````````````````````````` +```````````````````````````````` example + foo +. +

→foo

+```````````````````````````````` -Leading and trailing [whitespace] is ignored in parsing inline content: ```````````````````````````````` example -# foo +[a](url "tit") . -

foo

+

[a](url "tit")

```````````````````````````````` -One to three spaces indentation are allowed: + +# Blocks and inlines + +We can think of a document as a sequence of +[blocks](@)---structural elements like paragraphs, block +quotations, lists, headings, rules, and code blocks. Some blocks (like +block quotes and list items) contain other blocks; others (like +headings and paragraphs) contain [inline](@) content---text, +links, emphasized text, images, code spans, and so on. + +## Precedence + +Indicators of block structure always take precedence over indicators +of inline structure. So, for example, the following is a list with +two items, not a list with one item containing a code span: ```````````````````````````````` example - ### foo - ## foo - # foo +- `one +- two` . -

foo

-

foo

-

foo

+
    +
  • `one
  • +
  • two`
  • +
```````````````````````````````` -Four spaces are too much: +This means that parsing can proceed in two steps: first, the block +structure of the document can be discerned; second, text lines inside +paragraphs, headings, and other block constructs can be parsed for inline +structure. The second step requires information about link reference +definitions that will be available only at the end of the first +step. Note that the first step requires processing lines in sequence, +but the second can be parallelized, since the inline parsing of +one block element does not affect the inline parsing of any other. + +## Container blocks and leaf blocks + +We can divide blocks into two types: +[container blocks](#container-blocks), +which can contain other blocks, and [leaf blocks](#leaf-blocks), +which cannot. + +# Leaf blocks + +This section describes the different kinds of leaf block that make up a +Markdown document. + +## Thematic breaks + +A line consisting of optionally up to three spaces of indentation, followed by a +sequence of three or more matching `-`, `_`, or `*` characters, each followed +optionally by any number of spaces or tabs, forms a +[thematic break](@). ```````````````````````````````` example - # foo +*** +--- +___ . -
# foo
-
+
+
+
```````````````````````````````` +Wrong characters: + ```````````````````````````````` example -foo - # bar ++++ . -

foo -# bar

+

+++

```````````````````````````````` -A closing sequence of `#` characters is optional: - ```````````````````````````````` example -## foo ## - ### bar ### +=== . -

foo

-

bar

+

===

```````````````````````````````` -It need not be the same length as the opening sequence: +Not enough characters: ```````````````````````````````` example -# foo ################################## -##### foo ## +-- +** +__ . -

foo

-
foo
+

-- +** +__

```````````````````````````````` -Spaces are allowed after the closing sequence: +Up to three spaces of indentation are allowed: ```````````````````````````````` example -### foo ### + *** + *** + *** . -

foo

+
+
+
```````````````````````````````` -A sequence of `#` characters with anything but [spaces] following it -is not a closing sequence, but counts as part of the contents of the -heading: +Four spaces of indentation is too many: ```````````````````````````````` example -### foo ### b + *** . -

foo ### b

+
***
+
```````````````````````````````` -The closing sequence must be preceded by a space: - ```````````````````````````````` example -# foo# +Foo + *** . -

foo#

+

Foo +***

```````````````````````````````` -Backslash-escaped `#` characters do not count as part -of the closing sequence: +More than three characters may be used: ```````````````````````````````` example -### foo \### -## foo #\## -# foo \# +_____________________________________ . -

foo ###

-

foo ###

-

foo #

+
```````````````````````````````` -ATX headings need not be separated from surrounding content by blank -lines, and they can interrupt paragraphs: +Spaces and tabs are allowed between the characters: ```````````````````````````````` example -**** -## foo -**** + - - - .
-

foo

-
```````````````````````````````` ```````````````````````````````` example -Foo bar -# baz -Bar foo + ** * ** * ** * ** . -

Foo bar

-

baz

-

Bar foo

+
```````````````````````````````` -ATX headings can be empty: - ```````````````````````````````` example -## -# -### ### +- - - - . -

-

-

+
```````````````````````````````` -## Setext headings - -A [setext heading](@) consists of one or more -lines of text, each containing at least one [non-whitespace -character], with no more than 3 spaces indentation, followed by -a [setext heading underline]. The lines of text must be such -that, were they not followed by the setext heading underline, -they would be interpreted as a paragraph: they cannot be -interpretable as a [code fence], [ATX heading][ATX headings], -[block quote][block quotes], [thematic break][thematic breaks], -[list item][list items], or [HTML block][HTML blocks]. - -A [setext heading underline](@) is a sequence of -`=` characters or a sequence of `-` characters, with no more than 3 -spaces indentation and any number of trailing spaces. If a line -containing a single `-` can be interpreted as an -empty [list items], it should be interpreted this way -and not as a [setext heading underline]. +Spaces and tabs are allowed at the end: -The heading is a level 1 heading if `=` characters are used in -the [setext heading underline], and a level 2 heading if `-` -characters are used. The contents of the heading are the result -of parsing the preceding lines of text as CommonMark inline -content. +```````````````````````````````` example +- - - - +. +
+```````````````````````````````` -In general, a setext heading need not be preceded or followed by a -blank line. However, it cannot interrupt a paragraph, so when a -setext heading comes after a paragraph, a blank line is needed between -them. -Simple examples: +However, no other characters may occur in the line: ```````````````````````````````` example -Foo *bar* -========= +_ _ _ _ a -Foo *bar* ---------- +a------ + +---a--- . -

Foo bar

-

Foo bar

+

_ _ _ _ a

+

a------

+

---a---

```````````````````````````````` -The content of the header may span more than one line: +It is required that all of the characters other than spaces or tabs be the same. +So, this is not a thematic break: ```````````````````````````````` example -Foo *bar -baz* -==== + *-* . -

Foo bar -baz

+

-

```````````````````````````````` -The contents are the result of parsing the headings's raw -content as inlines. The heading's raw content is formed by -concatenating the lines and removing initial and final -[whitespace]. + +Thematic breaks do not need blank lines before or after: ```````````````````````````````` example - Foo *bar -baz*→ -==== +- foo +*** +- bar . -

Foo bar -baz

+
    +
  • foo
  • +
+
+
    +
  • bar
  • +
```````````````````````````````` -The underlining can be any length: +Thematic breaks can interrupt a paragraph: ```````````````````````````````` example Foo -------------------------- - -Foo -= +*** +bar . -

Foo

-

Foo

+

Foo

+
+

bar

```````````````````````````````` -The heading content can be indented up to three spaces, and need -not line up with the underlining: +If a line of dashes that meets the above conditions for being a +thematic break could also be interpreted as the underline of a [setext +heading], the interpretation as a +[setext heading] takes precedence. Thus, for example, +this is a setext heading, not a paragraph followed by a thematic break: ```````````````````````````````` example - Foo +Foo --- - - Foo ------ - - Foo - === +bar .

Foo

-

Foo

-

Foo

+

bar

```````````````````````````````` -Four spaces indent is too much: +When both a thematic break and a list item are possible +interpretations of a line, the thematic break takes precedence: ```````````````````````````````` example - Foo - --- - - Foo ---- +* Foo +* * * +* Bar . -
Foo
----
+
    +
  • Foo
  • +
+
+
    +
  • Bar
  • +
+```````````````````````````````` -Foo -
+ +If you want a thematic break in a list item, use a different bullet: + +```````````````````````````````` example +- Foo +- * * * +. +
    +
  • Foo
  • +

  • +
  • +
```````````````````````````````` -The setext heading underline can be indented up to three spaces, and -may have trailing spaces: +## ATX headings + +An [ATX heading](@) +consists of a string of characters, parsed as inline content, between an +opening sequence of 1--6 unescaped `#` characters and an optional +closing sequence of any number of unescaped `#` characters. +The opening sequence of `#` characters must be followed by spaces or tabs, or +by the end of line. The optional closing sequence of `#`s must be preceded by +spaces or tabs and may be followed by spaces or tabs only. The opening +`#` character may be preceded by up to three spaces of indentation. The raw +contents of the heading are stripped of leading and trailing space or tabs +before being parsed as inline content. The heading level is equal to the number +of `#` characters in the opening sequence. + +Simple headings: ```````````````````````````````` example -Foo - ---- +# foo +## foo +### foo +#### foo +##### foo +###### foo . -

Foo

+

foo

+

foo

+

foo

+

foo

+
foo
+
foo
```````````````````````````````` -Four spaces is too much: +More than six `#` characters is not a heading: ```````````````````````````````` example -Foo - --- +####### foo . -

Foo ----

+

####### foo

```````````````````````````````` -The setext heading underline cannot contain internal spaces: +At least one space or tab is required between the `#` characters and the +heading's contents, unless the heading is empty. Note that many +implementations currently do not require the space. However, the +space was required by the +[original ATX implementation](http://www.aaronsw.com/2002/atx/atx.py), +and it helps prevent things like the following from being parsed as +headings: ```````````````````````````````` example -Foo -= = +#5 bolt -Foo ---- - +#hashtag . -

Foo -= =

-

Foo

-
+

#5 bolt

+

#hashtag

```````````````````````````````` -Trailing spaces in the content line do not cause a line break: +This is not a heading, because the first `#` is escaped: ```````````````````````````````` example -Foo ------ +\## foo . -

Foo

+

## foo

```````````````````````````````` -Nor does a backslash at the end: +Contents are parsed as inlines: ```````````````````````````````` example -Foo\ ----- +# foo *bar* \*baz\* . -

Foo\

+

foo bar *baz*

```````````````````````````````` -Since indicators of block structure take precedence over -indicators of inline structure, the following are setext headings: +Leading and trailing spaces or tabs are ignored in parsing inline content: ```````````````````````````````` example -`Foo ----- -` - - +# foo . -

`Foo

-

`

-

<a title="a lot

-

of dashes"/>

+

foo

```````````````````````````````` -The setext heading underline cannot be a [lazy continuation -line] in a list item or block quote: +Up to three spaces of indentation are allowed: ```````````````````````````````` example -> Foo ---- + ### foo + ## foo + # foo . -
-

Foo

-
-
+

foo

+

foo

+

foo

```````````````````````````````` +Four spaces of indentation is too many: + ```````````````````````````````` example -> foo -bar -=== + # foo . -
-

foo -bar -===

-
+
# foo
+
```````````````````````````````` ```````````````````````````````` example -- Foo ---- +foo + # bar . -
    -
  • Foo
  • -
-
+

foo +# bar

```````````````````````````````` -A blank line is needed between a paragraph and a following -setext heading, since otherwise the paragraph becomes part -of the heading's content: +A closing sequence of `#` characters is optional: ```````````````````````````````` example -Foo -Bar ---- +## foo ## + ### bar ### . -

Foo -Bar

+

foo

+

bar

```````````````````````````````` -But in general a blank line is not required before or after -setext headings: +It need not be the same length as the opening sequence: ```````````````````````````````` example ---- -Foo ---- -Bar ---- -Baz +# foo ################################## +##### foo ## . -
-

Foo

-

Bar

-

Baz

+

foo

+
foo
```````````````````````````````` -Setext headings cannot be empty: +Spaces or tabs are allowed after the closing sequence: ```````````````````````````````` example +### foo ### +. +

foo

+```````````````````````````````` -==== + +A sequence of `#` characters with anything but spaces or tabs following it +is not a closing sequence, but counts as part of the contents of the +heading: + +```````````````````````````````` example +### foo ### b . -

====

+

foo ### b

```````````````````````````````` -Setext heading text lines must not be interpretable as block -constructs other than paragraphs. So, the line of dashes -in these examples gets interpreted as a thematic break: +The closing sequence must be preceded by a space or tab: ```````````````````````````````` example ---- ---- +# foo# . -
-
+

foo#

```````````````````````````````` +Backslash-escaped `#` characters do not count as part +of the closing sequence: + ```````````````````````````````` example -- foo ------ +### foo \### +## foo #\## +# foo \# . -
    -
  • foo
  • -
-
+

foo ###

+

foo ###

+

foo #

```````````````````````````````` +ATX headings need not be separated from surrounding content by blank +lines, and they can interrupt paragraphs: + ```````````````````````````````` example - foo ---- +**** +## foo +**** . -
foo
-
+
+

foo


```````````````````````````````` ```````````````````````````````` example -> foo ------ +Foo bar +# baz +Bar foo . -
-

foo

-
-
+

Foo bar

+

baz

+

Bar foo

```````````````````````````````` -If you want a heading with `> foo` as its literal text, you can -use backslash escapes: +ATX headings can be empty: ```````````````````````````````` example -\> foo ------- +## +# +### ### . -

> foo

+

+

+

```````````````````````````````` -**Compatibility note:** Most existing Markdown implementations -do not allow the text of setext headings to span multiple lines. -But there is no consensus about how to interpret +## Setext headings -``` markdown -Foo -bar ---- -baz -``` +A [setext heading](@) consists of one or more +lines of text, not interrupted by a blank line, of which the first line does not +have more than 3 spaces of indentation, followed by +a [setext heading underline]. The lines of text must be such +that, were they not followed by the setext heading underline, +they would be interpreted as a paragraph: they cannot be +interpretable as a [code fence], [ATX heading][ATX headings], +[block quote][block quotes], [thematic break][thematic breaks], +[list item][list items], or [HTML block][HTML blocks]. -One can find four different interpretations: +A [setext heading underline](@) is a sequence of +`=` characters or a sequence of `-` characters, with no more than 3 +spaces of indentation and any number of trailing spaces or tabs. If a line +containing a single `-` can be interpreted as an +empty [list items], it should be interpreted this way +and not as a [setext heading underline]. -1. paragraph "Foo", heading "bar", paragraph "baz" -2. paragraph "Foo bar", thematic break, paragraph "baz" -3. paragraph "Foo bar --- baz" -4. heading "Foo bar", paragraph "baz" +The heading is a level 1 heading if `=` characters are used in +the [setext heading underline], and a level 2 heading if `-` +characters are used. The contents of the heading are the result +of parsing the preceding lines of text as CommonMark inline +content. -We find interpretation 4 most natural, and interpretation 4 -increases the expressive power of CommonMark, by allowing -multiline headings. Authors who want interpretation 1 can -put a blank line after the first paragraph: +In general, a setext heading need not be preceded or followed by a +blank line. However, it cannot interrupt a paragraph, so when a +setext heading comes after a paragraph, a blank line is needed between +them. + +Simple examples: ```````````````````````````````` example -Foo +Foo *bar* +========= -bar ---- -baz +Foo *bar* +--------- . -

Foo

-

bar

-

baz

+

Foo bar

+

Foo bar

```````````````````````````````` -Authors who want interpretation 2 can put blank lines around -the thematic break, +The content of the header may span more than one line: ```````````````````````````````` example -Foo -bar +Foo *bar +baz* +==== +. +

Foo bar +baz

+```````````````````````````````` ---- +The contents are the result of parsing the headings's raw +content as inlines. The heading's raw content is formed by +concatenating the lines and removing initial and final +spaces or tabs. -baz +```````````````````````````````` example + Foo *bar +baz*→ +==== . -

Foo -bar

-
-

baz

+

Foo bar +baz

```````````````````````````````` -or use a thematic break that cannot count as a [setext heading -underline], such as +The underlining can be any length: ```````````````````````````````` example Foo -bar -* * * -baz +------------------------- + +Foo += . -

Foo -bar

-
-

baz

+

Foo

+

Foo

```````````````````````````````` -Authors who want interpretation 3 can use backslash escapes: +The heading content can be preceded by up to three spaces of indentation, and +need not line up with the underlining: ```````````````````````````````` example -Foo -bar -\--- -baz -. -

Foo -bar + Foo --- -baz

-```````````````````````````````` + Foo +----- -## Indented code blocks + Foo + === +. +

Foo

+

Foo

+

Foo

+```````````````````````````````` -An [indented code block](@) is composed of one or more -[indented chunks] separated by blank lines. -An [indented chunk](@) is a sequence of non-blank lines, -each indented four or more spaces. The contents of the code block are -the literal contents of the lines, including trailing -[line endings], minus four spaces of indentation. -An indented code block has no [info string]. -An indented code block cannot interrupt a paragraph, so there must be -a blank line between a paragraph and a following indented code block. -(A blank line is not needed, however, between a code block and a following -paragraph.) +Four spaces of indentation is too many: ```````````````````````````````` example - a simple - indented code block + Foo + --- + + Foo +--- . -
a simple
-  indented code block
+
Foo
+---
+
+Foo
 
+
```````````````````````````````` -If there is any ambiguity between an interpretation of indentation -as a code block and as indicating that material belongs to a [list -item][list items], the list item interpretation takes precedence: +The setext heading underline can be preceded by up to three spaces of +indentation, and may have trailing spaces or tabs: ```````````````````````````````` example - - foo - - bar +Foo + ---- . -
    -
  • -

    foo

    -

    bar

    -
  • -
+

Foo

```````````````````````````````` -```````````````````````````````` example -1. foo +Four spaces of indentation is too many: - - bar +```````````````````````````````` example +Foo + --- . -
    -
  1. -

    foo

    -
      -
    • bar
    • -
    -
  2. -
+

Foo +---

```````````````````````````````` - -The contents of a code block are literal text, and do not get parsed -as Markdown: +The setext heading underline cannot contain internal spaces or tabs: ```````````````````````````````` example -
- *hi* +Foo += = - - one +Foo +--- - . -
<a/>
-*hi*
-
-- one
-
+

Foo += =

+

Foo

+
```````````````````````````````` -Here we have three chunks separated by blank lines: +Trailing spaces or tabs in the content line do not cause a hard line break: ```````````````````````````````` example - chunk1 - - chunk2 - - - - chunk3 +Foo +----- . -
chunk1
-
-chunk2
-
-
-
-chunk3
-
+

Foo

```````````````````````````````` -Any initial spaces beyond four will be included in the content, even -in interior blank lines: +Nor does a backslash at the end: ```````````````````````````````` example - chunk1 - - chunk2 +Foo\ +---- . -
chunk1
-  
-  chunk2
-
+

Foo\

```````````````````````````````` -An indented code block cannot interrupt a paragraph. (This -allows hanging indents and the like.) +Since indicators of block structure take precedence over +indicators of inline structure, the following are setext headings: ```````````````````````````````` example -Foo - bar +`Foo +---- +` +
. -

Foo -bar

+

`Foo

+

`

+

<a title="a lot

+

of dashes"/>

```````````````````````````````` -However, any non-blank line with fewer than four leading spaces ends -the code block immediately. So a paragraph may occur immediately -after indented code: +The setext heading underline cannot be a [lazy continuation +line] in a list item or block quote: ```````````````````````````````` example - foo -bar +> Foo +--- . -
foo
-
-

bar

+
+

Foo

+
+
```````````````````````````````` -And indented code can occur immediately before and after other kinds of -blocks: - ```````````````````````````````` example -# Heading - foo -Heading ------- - foo ----- +> foo +bar +=== . -

Heading

-
foo
-
-

Heading

-
foo
-
-
+
+

foo +bar +===

+
```````````````````````````````` -The first line can be indented more than four spaces: - ```````````````````````````````` example - foo - bar +- Foo +--- . -
    foo
-bar
-
+
    +
  • Foo
  • +
+
```````````````````````````````` -Blank lines preceding or following an indented code block -are not included in it: +A blank line is needed between a paragraph and a following +setext heading, since otherwise the paragraph becomes part +of the heading's content: ```````````````````````````````` example - - - foo - - +Foo +Bar +--- . -
foo
-
+

Foo +Bar

```````````````````````````````` -Trailing spaces are included in the code block's content: +But in general a blank line is not required before or after +setext headings: ```````````````````````````````` example - foo +--- +Foo +--- +Bar +--- +Baz . -
foo  
-
+
+

Foo

+

Bar

+

Baz

```````````````````````````````` +Setext headings cannot be empty: -## Fenced code blocks - -A [code fence](@) is a sequence -of at least three consecutive backtick characters (`` ` ``) or -tildes (`~`). (Tildes and backticks cannot be mixed.) -A [fenced code block](@) -begins with a code fence, indented no more than three spaces. - -The line with the opening code fence may optionally contain some text -following the code fence; this is trimmed of leading and trailing -whitespace and called the [info string](@). If the [info string] comes -after a backtick fence, it may not contain any backtick -characters. (The reason for this restriction is that otherwise -some inline code would be incorrectly interpreted as the -beginning of a fenced code block.) +```````````````````````````````` example -The content of the code block consists of all subsequent lines, until -a closing [code fence] of the same type as the code block -began with (backticks or tildes), and with at least as many backticks -or tildes as the opening code fence. If the leading code fence is -indented N spaces, then up to N spaces of indentation are removed from -each line of the content (if present). (If a content line is not -indented, it is preserved unchanged. If it is indented less than N -spaces, all of the indentation is removed.) +==== +. +

====

+```````````````````````````````` -The closing code fence may be indented up to three spaces, and may be -followed only by spaces, which are ignored. If the end of the -containing block (or document) is reached and no closing code fence -has been found, the code block contains all of the lines after the -opening code fence until the end of the containing block (or -document). (An alternative spec would require backtracking in the -event that a closing code fence is not found. But this makes parsing -much less efficient, and there seems to be no real down side to the -behavior described here.) -A fenced code block may interrupt a paragraph, and does not require -a blank line either before or after. +Setext heading text lines must not be interpretable as block +constructs other than paragraphs. So, the line of dashes +in these examples gets interpreted as a thematic break: -The content of a code fence is treated as literal text, not parsed -as inlines. The first word of the [info string] is typically used to -specify the language of the code sample, and rendered in the `class` -attribute of the `code` tag. However, this spec does not mandate any -particular treatment of the [info string]. +```````````````````````````````` example +--- +--- +. +
+
+```````````````````````````````` -Here is a simple example with backticks: ```````````````````````````````` example -``` -< - > -``` +- foo +----- . -
<
- >
-
+
    +
  • foo
  • +
+
```````````````````````````````` -With tildes: - ```````````````````````````````` example -~~~ -< - > -~~~ + foo +--- . -
<
- >
+
foo
 
+
```````````````````````````````` -Fewer than three backticks is not enough: ```````````````````````````````` example -`` -foo -`` +> foo +----- . -

foo

+
+

foo

+
+
```````````````````````````````` -The closing code fence must use the same character as the opening -fence: + +If you want a heading with `> foo` as its literal text, you can +use backslash escapes: ```````````````````````````````` example -``` -aaa -~~~ -``` +\> foo +------ . -
aaa
-~~~
-
+

> foo

```````````````````````````````` -```````````````````````````````` example -~~~ -aaa -``` -~~~ -. -
aaa
+**Compatibility note:**  Most existing Markdown implementations
+do not allow the text of setext headings to span multiple lines.
+But there is no consensus about how to interpret
+
+``` markdown
+Foo
+bar
+---
+baz
 ```
-
-```````````````````````````````` +One can find four different interpretations: -The closing code fence must be at least as long as the opening fence: +1. paragraph "Foo", heading "bar", paragraph "baz" +2. paragraph "Foo bar", thematic break, paragraph "baz" +3. paragraph "Foo bar --- baz" +4. heading "Foo bar", paragraph "baz" + +We find interpretation 4 most natural, and interpretation 4 +increases the expressive power of CommonMark, by allowing +multiline headings. Authors who want interpretation 1 can +put a blank line after the first paragraph: ```````````````````````````````` example -```` -aaa -``` -`````` +Foo + +bar +--- +baz . -
aaa
-```
-
+

Foo

+

bar

+

baz

```````````````````````````````` +Authors who want interpretation 2 can put blank lines around +the thematic break, + ```````````````````````````````` example -~~~~ -aaa -~~~ -~~~~ +Foo +bar + +--- + +baz . -
aaa
-~~~
-
+

Foo +bar

+
+

baz

```````````````````````````````` -Unclosed code blocks are closed by the end of the document -(or the enclosing [block quote][block quotes] or [list item][list items]): +or use a thematic break that cannot count as a [setext heading +underline], such as ```````````````````````````````` example -``` +Foo +bar +* * * +baz . -
+

Foo +bar

+
+

baz

```````````````````````````````` -```````````````````````````````` example -````` +Authors who want interpretation 3 can use backslash escapes: -``` -aaa +```````````````````````````````` example +Foo +bar +\--- +baz . -

-```
-aaa
-
+

Foo +bar +--- +baz

```````````````````````````````` -```````````````````````````````` example -> ``` -> aaa +## Indented code blocks -bbb +An [indented code block](@) is composed of one or more +[indented chunks] separated by blank lines. +An [indented chunk](@) is a sequence of non-blank lines, +each preceded by four or more spaces of indentation. The contents of the code +block are the literal contents of the lines, including trailing +[line endings], minus four spaces of indentation. +An indented code block has no [info string]. + +An indented code block cannot interrupt a paragraph, so there must be +a blank line between a paragraph and a following indented code block. +(A blank line is not needed, however, between a code block and a following +paragraph.) + +```````````````````````````````` example + a simple + indented code block . -
-
aaa
+
a simple
+  indented code block
 
-
-

bbb

```````````````````````````````` -A code block can have all empty lines as its content: +If there is any ambiguity between an interpretation of indentation +as a code block and as indicating that material belongs to a [list +item][list items], the list item interpretation takes precedence: ```````````````````````````````` example -``` + - foo - -``` + bar . -

-  
-
+
    +
  • +

    foo

    +

    bar

    +
  • +
```````````````````````````````` -A code block can be empty: - ```````````````````````````````` example -``` -``` +1. foo + + - bar . -
+
    +
  1. +

    foo

    +
      +
    • bar
    • +
    +
  2. +
```````````````````````````````` -Fences can be indented. If the opening fence is indented, -content lines will have equivalent opening indentation removed, -if present: + +The contents of a code block are literal text, and do not get parsed +as Markdown: ```````````````````````````````` example - ``` - aaa -aaa -``` +
+ *hi* + + - one . -
aaa
-aaa
+
<a/>
+*hi*
+
+- one
 
```````````````````````````````` +Here we have three chunks separated by blank lines: + ```````````````````````````````` example - ``` -aaa - aaa -aaa - ``` + chunk1 + + chunk2 + + + + chunk3 . -
aaa
-aaa
-aaa
+
chunk1
+
+chunk2
+
+
+
+chunk3
 
```````````````````````````````` +Any initial spaces or tabs beyond four spaces of indentation will be included in +the content, even in interior blank lines: + ```````````````````````````````` example - ``` - aaa - aaa - aaa - ``` + chunk1 + + chunk2 . -
aaa
- aaa
-aaa
+
chunk1
+  
+  chunk2
 
```````````````````````````````` -Four spaces indentation produces an indented code block: +An indented code block cannot interrupt a paragraph. (This +allows hanging indents and the like.) ```````````````````````````````` example - ``` - aaa - ``` +Foo + bar + . -
```
-aaa
-```
-
+

Foo +bar

```````````````````````````````` -Closing fences may be indented by 0-3 spaces, and their indentation -need not match that of the opening fence: +However, any non-blank line with fewer than four spaces of indentation ends +the code block immediately. So a paragraph may occur immediately +after indented code: ```````````````````````````````` example -``` -aaa - ``` + foo +bar . -
aaa
+
foo
 
+

bar

```````````````````````````````` +And indented code can occur immediately before and after other kinds of +blocks: + ```````````````````````````````` example - ``` -aaa - ``` +# Heading + foo +Heading +------ + foo +---- . -
aaa
+

Heading

+
foo
+
+

Heading

+
foo
 
+
```````````````````````````````` -This is not a closing fence, because it is indented 4 spaces: +The first line can be preceded by more than four spaces of indentation: ```````````````````````````````` example -``` -aaa - ``` + foo + bar . -
aaa
-    ```
+
    foo
+bar
 
```````````````````````````````` - -Code fences (opening and closing) cannot contain internal spaces: +Blank lines preceding or following an indented code block +are not included in it: ```````````````````````````````` example -``` ``` -aaa + + + foo + + . -

-aaa

+
foo
+
```````````````````````````````` +Trailing spaces or tabs are included in the code block's content: + ```````````````````````````````` example -~~~~~~ -aaa -~~~ ~~ + foo . -
aaa
-~~~ ~~
+
foo  
 
```````````````````````````````` -Fenced code blocks can interrupt paragraphs, and can be followed -directly by paragraphs, without a blank line between: + +## Fenced code blocks + +A [code fence](@) is a sequence +of at least three consecutive backtick characters (`` ` ``) or +tildes (`~`). (Tildes and backticks cannot be mixed.) +A [fenced code block](@) +begins with a code fence, preceded by up to three spaces of indentation. + +The line with the opening code fence may optionally contain some text +following the code fence; this is trimmed of leading and trailing +spaces or tabs and called the [info string](@). If the [info string] comes +after a backtick fence, it may not contain any backtick +characters. (The reason for this restriction is that otherwise +some inline code would be incorrectly interpreted as the +beginning of a fenced code block.) + +The content of the code block consists of all subsequent lines, until +a closing [code fence] of the same type as the code block +began with (backticks or tildes), and with at least as many backticks +or tildes as the opening code fence. If the leading code fence is +preceded by N spaces of indentation, then up to N spaces of indentation are +removed from each line of the content (if present). (If a content line is not +indented, it is preserved unchanged. If it is indented N spaces or less, all +of the indentation is removed.) + +The closing code fence may be preceded by up to three spaces of indentation, and +may be followed only by spaces or tabs, which are ignored. If the end of the +containing block (or document) is reached and no closing code fence +has been found, the code block contains all of the lines after the +opening code fence until the end of the containing block (or +document). (An alternative spec would require backtracking in the +event that a closing code fence is not found. But this makes parsing +much less efficient, and there seems to be no real down side to the +behavior described here.) + +A fenced code block may interrupt a paragraph, and does not require +a blank line either before or after. + +The content of a code fence is treated as literal text, not parsed +as inlines. The first word of the [info string] is typically used to +specify the language of the code sample, and rendered in the `class` +attribute of the `code` tag. However, this spec does not mandate any +particular treatment of the [info string]. + +Here is a simple example with backticks: ```````````````````````````````` example -foo ``` -bar +< + > ``` -baz . -

foo

-
bar
+
<
+ >
 
-

baz

```````````````````````````````` -Other blocks can also occur before and after fenced code blocks -without an intervening blank line: +With tildes: ```````````````````````````````` example -foo ---- ~~~ -bar +< + > ~~~ -# baz . -

foo

-
bar
+
<
+ >
 
-

baz

```````````````````````````````` +Fewer than three backticks is not enough: + +```````````````````````````````` example +`` +foo +`` +. +

foo

+```````````````````````````````` -An [info string] can be provided after the opening code fence. -Although this spec doesn't mandate any particular treatment of -the info string, the first word is typically used to specify -the language of the code block. In HTML output, the language is -normally indicated by adding a class to the `code` element consisting -of `language-` followed by the language name. +The closing code fence must use the same character as the opening +fence: ```````````````````````````````` example -```ruby -def foo(x) - return 3 -end +``` +aaa +~~~ ``` . -
def foo(x)
-  return 3
-end
+
aaa
+~~~
 
```````````````````````````````` ```````````````````````````````` example -~~~~ ruby startline=3 $%@#$ -def foo(x) - return 3 -end -~~~~~~~ +~~~ +aaa +``` +~~~ . -
def foo(x)
-  return 3
-end
+
aaa
+```
 
```````````````````````````````` +The closing code fence must be at least as long as the opening fence: + ```````````````````````````````` example -````; ```` +aaa +``` +`````` . -
+
aaa
+```
+
```````````````````````````````` -[Info strings] for backtick code blocks cannot contain backticks: +```````````````````````````````` example +~~~~ +aaa +~~~ +~~~~ +. +
aaa
+~~~
+
+```````````````````````````````` + + +Unclosed code blocks are closed by the end of the document +(or the enclosing [block quote][block quotes] or [list item][list items]): ```````````````````````````````` example -``` aa ``` -foo +``` . -

aa -foo

+
```````````````````````````````` -[Info strings] for tilde code blocks can contain backticks and tildes: +```````````````````````````````` example +````` + +``` +aaa +. +

+```
+aaa
+
+```````````````````````````````` + ```````````````````````````````` example -~~~ aa ``` ~~~ -foo -~~~ +> ``` +> aaa + +bbb . -
foo
+
+
aaa
 
+
+

bbb

```````````````````````````````` -Closing code fences cannot have [info strings]: +A code block can have all empty lines as its content: ```````````````````````````````` example ``` -``` aaa + + ``` . -
``` aaa
+

+  
 
```````````````````````````````` +A code block can be empty: -## HTML blocks - -An [HTML block](@) is a group of lines that is treated -as raw HTML (and will not be escaped in HTML output). +```````````````````````````````` example +``` +``` +. +
+```````````````````````````````` -There are seven kinds of [HTML block], which can be defined by their -start and end conditions. The block begins with a line that meets a -[start condition](@) (after up to three spaces optional indentation). -It ends with the first subsequent line that meets a matching [end -condition](@), or the last line of the document, or the last line of -the [container block](#container-blocks) containing the current HTML -block, if no line is encountered that meets the [end condition]. If -the first line meets both the [start condition] and the [end -condition], the block will contain just that line. -1. **Start condition:** line begins with the string ``, or the end of the line.\ -**End condition:** line contains an end tag -``, `
`, or `` (case-insensitive; it -need not match the start tag). +Fences can be indented. If the opening fence is indented, +content lines will have equivalent opening indentation removed, +if present: -2. **Start condition:** line begins with the string ``. +```````````````````````````````` example + ``` + aaa +aaa +``` +. +
aaa
+aaa
+
+```````````````````````````````` -3. **Start condition:** line begins with the string ``. -4. **Start condition:** line begins with the string ``. +```````````````````````````````` example + ``` +aaa + aaa +aaa + ``` +. +
aaa
+aaa
+aaa
+
+```````````````````````````````` + + +```````````````````````````````` example + ``` + aaa + aaa + aaa + ``` +. +
aaa
+ aaa
+aaa
+
+```````````````````````````````` + + +Four spaces of indentation is too many: + +```````````````````````````````` example + ``` + aaa + ``` +. +
```
+aaa
+```
+
+```````````````````````````````` + + +Closing fences may be preceded by up to three spaces of indentation, and their +indentation need not match that of the opening fence: + +```````````````````````````````` example +``` +aaa + ``` +. +
aaa
+
+```````````````````````````````` + + +```````````````````````````````` example + ``` +aaa + ``` +. +
aaa
+
+```````````````````````````````` + + +This is not a closing fence, because it is indented 4 spaces: + +```````````````````````````````` example +``` +aaa + ``` +. +
aaa
+    ```
+
+```````````````````````````````` + + + +Code fences (opening and closing) cannot contain internal spaces or tabs: + +```````````````````````````````` example +``` ``` +aaa +. +

+aaa

+```````````````````````````````` + + +```````````````````````````````` example +~~~~~~ +aaa +~~~ ~~ +. +
aaa
+~~~ ~~
+
+```````````````````````````````` + + +Fenced code blocks can interrupt paragraphs, and can be followed +directly by paragraphs, without a blank line between: + +```````````````````````````````` example +foo +``` +bar +``` +baz +. +

foo

+
bar
+
+

baz

+```````````````````````````````` + + +Other blocks can also occur before and after fenced code blocks +without an intervening blank line: + +```````````````````````````````` example +foo +--- +~~~ +bar +~~~ +# baz +. +

foo

+
bar
+
+

baz

+```````````````````````````````` + + +An [info string] can be provided after the opening code fence. +Although this spec doesn't mandate any particular treatment of +the info string, the first word is typically used to specify +the language of the code block. In HTML output, the language is +normally indicated by adding a class to the `code` element consisting +of `language-` followed by the language name. + +```````````````````````````````` example +```ruby +def foo(x) + return 3 +end +``` +. +
def foo(x)
+  return 3
+end
+
+```````````````````````````````` + + +```````````````````````````````` example +~~~~ ruby startline=3 $%@#$ +def foo(x) + return 3 +end +~~~~~~~ +. +
def foo(x)
+  return 3
+end
+
+```````````````````````````````` + + +```````````````````````````````` example +````; +```` +. +
+```````````````````````````````` + + +[Info strings] for backtick code blocks cannot contain backticks: + +```````````````````````````````` example +``` aa ``` +foo +. +

aa +foo

+```````````````````````````````` + + +[Info strings] for tilde code blocks can contain backticks and tildes: + +```````````````````````````````` example +~~~ aa ``` ~~~ +foo +~~~ +. +
foo
+
+```````````````````````````````` + + +Closing code fences cannot have [info strings]: + +```````````````````````````````` example +``` +``` aaa +``` +. +
``` aaa
+
+```````````````````````````````` + + + +## HTML blocks + +An [HTML block](@) is a group of lines that is treated +as raw HTML (and will not be escaped in HTML output). + +There are seven kinds of [HTML block], which can be defined by their +start and end conditions. The block begins with a line that meets a +[start condition](@) (after up to three optional spaces of indentation). +It ends with the first subsequent line that meets a matching +[end condition](@), or the last line of the document, or the last line of +the [container block](#container-blocks) containing the current HTML +block, if no line is encountered that meets the [end condition]. If +the first line meets both the [start condition] and the [end +condition], the block will contain just that line. + +1. **Start condition:** line begins with the string ``, or the end of the line.\ +**End condition:** line contains an end tag +`
`, ``, ``, or `` (case-insensitive; it +need not match the start tag). + +2. **Start condition:** line begins with the string ``. + +3. **Start condition:** line begins with the string ``. + +4. **Start condition:** line begins with the string ``. 5. **Start condition:** line begins with the string ``, or +by a space, a tab, the end of the line, the string `>`, or the string `/>`.\ **End condition:** line is followed by a [blank line]. 7. **Start condition:** line begins with a complete [open tag] -(with any [tag name] other than `script`, -`style`, or `pre`) or a complete [closing tag], -followed only by [whitespace] or the end of the line.\ +(with any [tag name] other than `pre`, `script`, +`style`, or `textarea`) or a complete [closing tag], +followed by zero or more spaces and tabs, followed by the end of the line.\ **End condition:** line is followed by a [blank line]. HTML blocks continue until they are closed by their appropriate @@ -2080,7 +2425,7 @@ block** that might otherwise be recognised as a start condition will be ignored by the parser and passed through as-is, without changing the parser's state. -For instance, `
` within a HTML block started by `` will not affect
+For instance, `
` within an HTML block started by `
` will not affect the parser state; as the HTML block was started in by start condition 6, it will end at any blank line. This can be surprising: @@ -2101,7 +2446,7 @@ _world_.
```````````````````````````````` -In this case, the HTML block is terminated by the newline — the `**Hello**` +In this case, the HTML block is terminated by the blank line — the `**Hello**` text remains verbatim — and regular parsing resumes, with a paragraph, emphasised `world` and inline and block HTML following. @@ -2379,7 +2724,7 @@ rather than an [HTML block].) HTML tags designed to contain literal content -(`script`, `style`, `pre`), comments, processing instructions, +(`pre`, `script`, `style`, `textarea`), comments, processing instructions, and declarations are treated somewhat differently. Instead of ending at the first blank line, these blocks end at the first line containing a corresponding end tag. @@ -2425,6 +2770,26 @@ document.getElementById("demo").innerHTML = "Hello JavaScript!"; ```````````````````````````````` +A textarea tag (type 1): + +```````````````````````````````` example + +. + +```````````````````````````````` + A style tag (type 1): ```````````````````````````````` example @@ -2603,7 +2968,8 @@ function matchwo(a,b) ```````````````````````````````` -The opening tag can be indented 1-3 spaces, but not 4: +The opening tag can be preceded by up to three spaces of indentation, but not +four: ```````````````````````````````` example @@ -2679,7 +3045,7 @@ specification, which says: > The only restrictions are that block-level HTML elements — > e.g. `
`, ``, `
`, `

`, etc. — must be separated from > surrounding content by blank lines, and the start and end tags of the -> block should not be indented with tabs or spaces. +> block should not be indented with spaces or tabs. In some ways Gruber's rule is more restrictive than the one given here: @@ -2797,14 +3163,15 @@ deleted. The exception is inside `

` tags, but as described
 ## Link reference definitions
 
 A [link reference definition](@)
-consists of a [link label], indented up to three spaces, followed
-by a colon (`:`), optional [whitespace] (including up to one
+consists of a [link label], optionally preceded by up to three spaces of
+indentation, followed
+by a colon (`:`), optional spaces or tabs (including up to one
 [line ending]), a [link destination],
-optional [whitespace] (including up to one
+optional spaces or tabs (including up to one
 [line ending]), and an optional [link
 title], which if it is present must be separated
-from the [link destination] by [whitespace].
-No further [non-whitespace characters] may occur on the line.
+from the [link destination] by spaces or tabs.
+No further character may occur.
 
 A [link reference definition]
 does not correspond to a structural element of a document.  Instead, it
@@ -2922,7 +3289,7 @@ The link destination may not be omitted:
 ````````````````````````````````
 
 The title must be separated from the link destination by
-whitespace:
+spaces or tabs:
 
 ```````````````````````````````` example
 [foo]: (baz)
@@ -2991,8 +3358,11 @@ case-insensitive (see [matches]).
 ````````````````````````````````
 
 
-Here is a link reference definition with no corresponding link.
-It contributes nothing to the document.
+Whether something is a [link reference definition] is
+independent of whether the link reference it defines is
+used in the document.  Thus, for example, the following
+document contains just a link reference definition, and
+no visible content:
 
 ```````````````````````````````` example
 [foo]: /url
@@ -3013,7 +3383,7 @@ bar
 
 
 This is not a link reference definition, because there are
-[non-whitespace characters] after the title:
+characters other than spaces or tabs after the title:
 
 ```````````````````````````````` example
 [foo]: /url "title" ok
@@ -3145,18 +3515,6 @@ are defined:
 ````````````````````````````````
 
 
-Whether something is a [link reference definition] is
-independent of whether the link reference it defines is
-used in the document.  Thus, for example, the following
-document contains just a link reference definition, and
-no visible content:
-
-```````````````````````````````` example
-[foo]: /url
-.
-````````````````````````````````
-
-
 ## Paragraphs
 
 A sequence of non-blank lines that cannot be interpreted as other
@@ -3164,7 +3522,7 @@ kinds of blocks forms a [paragraph](@).
 The contents of the paragraph are the result of parsing the
 paragraph's raw content as inlines.  The paragraph's raw content
 is formed by concatenating the lines and removing initial and final
-[whitespace].
+spaces or tabs.
 
 A simple example with two paragraphs:
 
@@ -3194,7 +3552,7 @@ ddd

```````````````````````````````` -Multiple blank lines between paragraph have no effect: +Multiple blank lines between paragraphs have no effect: ```````````````````````````````` example aaa @@ -3207,7 +3565,7 @@ bbb ```````````````````````````````` -Leading spaces are skipped: +Leading spaces or tabs are skipped: ```````````````````````````````` example aaa @@ -3232,8 +3590,8 @@ ccc

```````````````````````````````` -However, the first line may be indented at most three spaces, -or an indented code block will be triggered: +However, the first line may be preceded by up to three spaces of indentation. +Four spaces of indentation is too many: ```````````````````````````````` example aaa @@ -3254,7 +3612,7 @@ bbb ```````````````````````````````` -Final spaces are stripped before inline parsing, so a paragraph +Final spaces or tabs are stripped before inline parsing, so a paragraph that ends with two or more spaces will not end with a [hard line break]: @@ -3313,9 +3671,11 @@ these constructions. (A recipe is provided below in the section entitled ## Block quotes -A [block quote marker](@) -consists of 0-3 spaces of initial indent, plus (a) the character `>` together -with a following space, or (b) a single character `>` not followed by a space. +A [block quote marker](@), +optionally preceded by up to three spaces of indentation, +consists of (a) the character `>` together with a following space of +indentation, or (b) a single character `>` not followed by a space of +indentation. The following rules define [block quotes]: @@ -3327,8 +3687,8 @@ The following rules define [block quotes]: 2. **Laziness.** If a string of lines *Ls* constitute a [block quote](#block-quotes) with contents *Bs*, then the result of deleting the initial [block quote marker] from one or - more lines in which the next [non-whitespace character] after the [block - quote marker] is [paragraph continuation + more lines in which the next character other than a space or tab after the + [block quote marker] is [paragraph continuation text] is a block quote with *Bs* as its content. [Paragraph continuation text](@) is text that will be parsed as part of the content of a paragraph, but does @@ -3354,7 +3714,7 @@ baz

```````````````````````````````` -The spaces after the `>` characters can be omitted: +The space or tab after the `>` characters can be omitted: ```````````````````````````````` example ># Foo @@ -3369,7 +3729,7 @@ baz

```````````````````````````````` -The `>` characters can be indented 1-3 spaces: +The `>` characters can be preceded by up to three spaces of indentation: ```````````````````````````````` example > # Foo @@ -3384,7 +3744,7 @@ baz

```````````````````````````````` -Four spaces gives us a code block: +Four spaces of indentation is too many: ```````````````````````````````` example > # Foo @@ -3719,8 +4079,8 @@ baz

When including an indented code block in a block quote, remember that the [block quote marker] includes -both the `>` and a following space. So *five spaces* are needed after -the `>`: +both the `>` and a following space of indentation. So *five spaces* are needed +after the `>`: ```````````````````````````````` example > code @@ -3755,10 +4115,10 @@ in some browsers.) The following rules define [list items]: 1. **Basic case.** If a sequence of lines *Ls* constitute a sequence of - blocks *Bs* starting with a [non-whitespace character], and *M* is a - list marker of width *W* followed by 1 ≤ *N* ≤ 4 spaces, then the result - of prepending *M* and the following spaces to the first line of - *Ls*, and indenting subsequent lines of *Ls* by *W + N* spaces, is a + blocks *Bs* starting with a character other than a space or tab, and *M* is + a list marker of width *W* followed by 1 ≤ *N* ≤ 4 spaces of indentation, + then the result of prepending *M* and the following spaces to the first line + of Ls*, and indenting subsequent lines of *Ls* by *W + N* spaces, is a list item with *Bs* as its contents. The type of the list item (bullet or ordered) is determined by the type of its list marker. If the list item is ordered, then it is also assigned a start @@ -3823,8 +4183,8 @@ with two lines.

The most important thing to notice is that the position of the text after the list marker determines how much indentation is needed in subsequent blocks in the list item. If the list -marker takes up two spaces, and there are three spaces between -the list marker and the next [non-whitespace character], then blocks +marker takes up two spaces of indentation, and there are three spaces between +the list marker and the next character other than a space or tab, then blocks must be indented five spaces in order to fall under the list item. @@ -3885,10 +4245,10 @@ put under the list item: It is tempting to think of this in terms of columns: the continuation -blocks must be indented at least to the column of the first -[non-whitespace character] after the list marker. However, that is not quite right. -The spaces after the list marker determine how much relative indentation -is needed. Which column this indentation reaches will depend on +blocks must be indented at least to the column of the first character other than +a space or tab after the list marker. However, that is not quite right. +The spaces of indentation after the list marker determine how much relative +indentation is needed. Which column this indentation reaches will depend on how the list item is embedded in other constructions, as shown by this example: @@ -3935,7 +4295,7 @@ far enough past the blockquote marker: ```````````````````````````````` -Note that at least one space is needed between the list marker and +Note that at least one space or tab is needed between the list marker and any following content, so these are not list items: ```````````````````````````````` example @@ -4067,16 +4427,16 @@ A start number may not be negative: 2. **Item starting with indented code.** If a sequence of lines *Ls* constitute a sequence of blocks *Bs* starting with an indented code block, and *M* is a list marker of width *W* followed by - one space, then the result of prepending *M* and the following - space to the first line of *Ls*, and indenting subsequent lines of - *Ls* by *W + 1* spaces, is a list item with *Bs* as its contents. + one space of indentation, then the result of prepending *M* and the + following space to the first line of *Ls*, and indenting subsequent lines + of *Ls* by *W + 1* spaces, is a list item with *Bs* as its contents. If a line is empty, then it need not be indented. The type of the list item (bullet or ordered) is determined by the type of its list marker. If the list item is ordered, then it is also assigned a start number, based on the ordered list marker. -An indented code block will have to be indented four spaces beyond -the edge of the region where text will be included in the list item. +An indented code block will have to be preceded by four spaces of indentation +beyond the edge of the region where text will be included in the list item. In the following case that is 6 spaces: ```````````````````````````````` example @@ -4112,8 +4472,8 @@ And in this case it is 11 spaces: If the *first* block in the list item is an indented code block, -then by rule #2, the contents must be indented *one* space after the -list marker: +then by rule #2, the contents must be preceded by *one* space of indentation +after the list marker: ```````````````````````````````` example indented code @@ -4149,7 +4509,7 @@ paragraph ```````````````````````````````` -Note that an additional space indent is interpreted as space +Note that an additional space of indentation is interpreted as space inside the code block: ```````````````````````````````` example @@ -4173,10 +4533,10 @@ inside the code block: Note that rules #1 and #2 only apply to two cases: (a) cases in which the lines to be included in a list item begin with a -[non-whitespace character], and (b) cases in which +characer other than a space or tab, and (b) cases in which they begin with an indented code block. In a case like the following, where the first block begins with -a three-space indent, the rules do not allow us to form a list item by +three spaces of indentation, the rules do not allow us to form a list item by indenting the whole thing and prepending a list marker: ```````````````````````````````` example @@ -4201,8 +4561,8 @@ bar ```````````````````````````````` -This is not a significant restriction, because when a block begins -with 1-3 spaces indent, the indentation can always be removed without +This is not a significant restriction, because when a block is preceded by up to +three spaces of indentation, the indentation can always be removed without a change in interpretation, allowing rule #1 to be applied. So, in the above case: @@ -4222,11 +4582,10 @@ the above case: 3. **Item starting with a blank line.** If a sequence of lines *Ls* starting with a single [blank line] constitute a (possibly empty) - sequence of blocks *Bs*, not separated from each other by more than - one blank line, and *M* is a list marker of width *W*, + sequence of blocks *Bs*, and *M* is a list marker of width *W*, then the result of prepending *M* to the first line of *Ls*, and - indenting subsequent lines of *Ls* by *W + 1* spaces, is a list - item with *Bs* as its contents. + preceding subsequent lines of *Ls* by *W + 1* spaces of indentation, is a + list item with *Bs* as its contents. If a line is empty, then it need not be indented. The type of the list item (bullet or ordered) is determined by the type of its list marker. If the list item is ordered, then it is also assigned a @@ -4301,7 +4660,7 @@ Here is an empty bullet list item: ```````````````````````````````` -It does not matter whether there are spaces following the [list marker]: +It does not matter whether there are spaces or tabs following the [list marker]: ```````````````````````````````` example - foo @@ -4358,9 +4717,9 @@ foo 4. **Indentation.** If a sequence of lines *Ls* constitutes a list item - according to rule #1, #2, or #3, then the result of indenting each line - of *Ls* by 1-3 spaces (the same for each line) also constitutes a - list item with the same contents and attributes. If a line is + according to rule #1, #2, or #3, then the result of preceding each line + of *Ls* by up to three spaces of indentation (the same for each line) also + constitutes a list item with the same contents and attributes. If a line is empty, then it need not be indented. Indented one space: @@ -4459,7 +4818,7 @@ Four spaces indent gives a code block: 5. **Laziness.** If a string of lines *Ls* constitute a [list item](#list-items) with contents *Bs*, then the result of deleting some or all of the indentation from one or more lines in which the - next [non-whitespace character] after the indentation is + next character other than a space or tab after the indentation is [paragraph continuation text] is a list item with the same contents and attributes. The unindented lines are called @@ -4544,7 +4903,7 @@ continued here.

The rules for sublists follow from the general rules [above][List items]. A sublist must be indented the same number -of spaces a paragraph would need to be in order to be included +of spaces of indentation a paragraph would need to be in order to be included in the list item. So, in this case we need two spaces indent: @@ -4777,8 +5136,8 @@ The choice of four spaces is arbitrary. It can be learned, but it is not likely to be guessed, and it trips up beginners regularly. Would it help to adopt a two-space rule? The problem is that such -a rule, together with the rule allowing 1--3 spaces indentation of the -initial list marker, allows text that is indented *less than* the +a rule, together with the rule allowing up to three spaces of indentation for +the initial list marker, allows text that is indented *less than* the original list marker to be included in the list item. For example, `Markdown.pl` parses @@ -5170,8 +5529,8 @@ item: ```````````````````````````````` -Note, however, that list items may not be indented more than -three spaces. Here `- e` is treated as a paragraph continuation +Note, however, that list items may not be preceded by more than +three spaces of indentation. Here `- e` is treated as a paragraph continuation line, because it is indented more than three spaces: ```````````````````````````````` example @@ -5257,7 +5616,7 @@ So is this, with a empty second item: ```````````````````````````````` -These are loose lists, even though there is no space between the items, +These are loose lists, even though there are no blank lines between the items, because one of the items directly contains two block-level elements with a blank line between them: @@ -5265,585 +5624,246 @@ with a blank line between them: - a - b - c -- d -. -
    -
  • -

    a

    -
  • -
  • -

    b

    -

    c

    -
  • -
  • -

    d

    -
  • -
-```````````````````````````````` - - -```````````````````````````````` example -- a -- b - - [ref]: /url -- d -. -
    -
  • -

    a

    -
  • -
  • -

    b

    -
  • -
  • -

    d

    -
  • -
-```````````````````````````````` - - -This is a tight list, because the blank lines are in a code block: - -```````````````````````````````` example -- a -- ``` - b - - - ``` -- c -. -
    -
  • a
  • -
  • -
    b
    -
    -
    -
    -
  • -
  • c
  • -
-```````````````````````````````` - - -This is a tight list, because the blank line is between two -paragraphs of a sublist. So the sublist is loose while -the outer list is tight: - -```````````````````````````````` example -- a - - b - - c -- d -. -
    -
  • a -
      -
    • -

      b

      -

      c

      -
    • -
    -
  • -
  • d
  • -
-```````````````````````````````` - - -This is a tight list, because the blank line is inside the -block quote: - -```````````````````````````````` example -* a - > b - > -* c -. -
    -
  • a -
    -

    b

    -
    -
  • -
  • c
  • -
-```````````````````````````````` - - -This list is tight, because the consecutive block elements -are not separated by blank lines: - -```````````````````````````````` example -- a - > b - ``` - c - ``` -- d -. -
    -
  • a -
    -

    b

    -
    -
    c
    -
    -
  • -
  • d
  • -
-```````````````````````````````` - - -A single-paragraph list is tight: - -```````````````````````````````` example -- a -. -
    -
  • a
  • -
-```````````````````````````````` - - -```````````````````````````````` example -- a - - b -. -
    -
  • a -
      -
    • b
    • -
    -
  • -
-```````````````````````````````` - - -This list is loose, because of the blank line between the -two block elements in the list item: - -```````````````````````````````` example -1. ``` - foo - ``` - - bar -. -
    -
  1. -
    foo
    -
    -

    bar

    -
  2. -
-```````````````````````````````` - - -Here the outer list is loose, the inner list tight: - -```````````````````````````````` example -* foo - * bar - - baz -. -
    -
  • -

    foo

    -
      -
    • bar
    • -
    -

    baz

    -
  • -
-```````````````````````````````` - - -```````````````````````````````` example -- a - - b - - c - -- d - - e - - f -. -
    -
  • -

    a

    -
      -
    • b
    • -
    • c
    • -
    -
  • -
  • -

    d

    -
      -
    • e
    • -
    • f
    • -
    -
  • -
-```````````````````````````````` - - -# Inlines - -Inlines are parsed sequentially from the beginning of the character -stream to the end (left to right, in left-to-right languages). -Thus, for example, in - -```````````````````````````````` example -`hi`lo` -. -

hilo`

-```````````````````````````````` - -`hi` is parsed as code, leaving the backtick at the end as a literal -backtick. - - -## Backslash escapes - -Any ASCII punctuation character may be backslash-escaped: - -```````````````````````````````` example -\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ -. -

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

-```````````````````````````````` - - -Backslashes before other characters are treated as literal -backslashes: - -```````````````````````````````` example -\→\A\a\ \3\φ\« -. -

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

-```````````````````````````````` - - -Escaped characters are treated as regular characters and do -not have their usual Markdown meanings: - -```````````````````````````````` example -\*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

-```````````````````````````````` - - -If a backslash is itself escaped, the following character is not: - -```````````````````````````````` example -\\*emphasis* -. -

\emphasis

-```````````````````````````````` - - -A backslash at the end of the line is a [hard line break]: - -```````````````````````````````` example -foo\ -bar -. -

foo
-bar

-```````````````````````````````` - - -Backslash escapes do not work in code blocks, code spans, autolinks, or -raw HTML: - -```````````````````````````````` example -`` \[\` `` -. -

\[\`

-```````````````````````````````` - - -```````````````````````````````` example - \[\] -. -
\[\]
-
-```````````````````````````````` - - -```````````````````````````````` example -~~~ -\[\] -~~~ -. -
\[\]
-
-```````````````````````````````` - - -```````````````````````````````` example - -. -

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

-```````````````````````````````` - - -```````````````````````````````` example - -. - -```````````````````````````````` - - -But they work in all other contexts, including URLs and link titles, -link references, and [info strings] in [fenced code blocks]: - -```````````````````````````````` example -[foo](/bar\* "ti\*tle") -. -

foo

-```````````````````````````````` - - -```````````````````````````````` example -[foo] - -[foo]: /bar\* "ti\*tle" -. -

foo

-```````````````````````````````` - - -```````````````````````````````` example -``` foo\+bar -foo -``` -. -
foo
-
-```````````````````````````````` - - - -## Entity and numeric character references - -Valid HTML entity references and numeric character references -can be used in place of the corresponding Unicode character, -with the following exceptions: - -- Entity and character references are not recognized in code - blocks and code spans. - -- Entity and character references cannot stand in place of - special characters that define structural elements in - CommonMark. For example, although `*` can be used - in place of a literal `*` character, `*` cannot replace - `*` in emphasis delimiters, bullet list markers, or thematic - breaks. - -Conforming CommonMark parsers need not store information about -whether a particular character was represented in the source -using a Unicode character or an entity reference. - -[Entity references](@) consist of `&` + any of the valid -HTML5 entity names + `;`. The -document -is used as an authoritative source for the valid entity -references and their corresponding code points. - -```````````````````````````````` example -  & © Æ Ď -¾ ℋ ⅆ -∲ ≧̸ -. -

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

-```````````````````````````````` - - -[Decimal numeric character -references](@) -consist of `&#` + a string of 1--7 arabic digits + `;`. A -numeric character reference is parsed as the corresponding -Unicode character. Invalid Unicode code points will be replaced by -the REPLACEMENT CHARACTER (`U+FFFD`). For security reasons, -the code point `U+0000` will also be replaced by `U+FFFD`. - -```````````````````````````````` example -# Ӓ Ϡ � -. -

# Ӓ Ϡ �

-```````````````````````````````` - - -[Hexadecimal numeric character -references](@) consist of `&#` + -either `X` or `x` + a string of 1-6 hexadecimal digits + `;`. -They too are parsed as the corresponding Unicode character (this -time specified with a hexadecimal numeral instead of decimal). - -```````````````````````````````` example -" ആ ಫ + c +- d . -

" ആ ಫ

+
    +
  • +

    a

    +
  • +
  • +

    b

    +

    c

    +
  • +
  • +

    d

    +
  • +
```````````````````````````````` -Here are some nonentities: - ```````````````````````````````` example -  &x; &#; &#x; -� -&#abcdef0; -&ThisIsNotDefined; &hi?; +- a +- b + + [ref]: /url +- d . -

&nbsp &x; &#; &#x; -&#987654321; -&#abcdef0; -&ThisIsNotDefined; &hi?;

+
    +
  • +

    a

    +
  • +
  • +

    b

    +
  • +
  • +

    d

    +
  • +
```````````````````````````````` -Although HTML5 does accept some entity references -without a trailing semicolon (such as `©`), these are not -recognized here, because it makes the grammar too ambiguous: +This is a tight list, because the blank lines are in a code block: ```````````````````````````````` example -© +- a +- ``` + b + + + ``` +- c . -

&copy

+
    +
  • a
  • +
  • +
    b
    +
    +
    +
    +
  • +
  • c
  • +
```````````````````````````````` -Strings that are not on the list of HTML5 named entities are not -recognized as entity references either: +This is a tight list, because the blank line is between two +paragraphs of a sublist. So the sublist is loose while +the outer list is tight: ```````````````````````````````` example -&MadeUpEntity; +- a + - b + + c +- d . -

&MadeUpEntity;

+
    +
  • a +
      +
    • +

      b

      +

      c

      +
    • +
    +
  • +
  • d
  • +
```````````````````````````````` -Entity and numeric character references are recognized in any -context besides code spans or code blocks, including -URLs, [link titles], and [fenced code block][] [info strings]: +This is a tight list, because the blank line is inside the +block quote: ```````````````````````````````` example - +* a + > b + > +* c . - +
    +
  • a +
    +

    b

    +
    +
  • +
  • c
  • +
```````````````````````````````` +This list is tight, because the consecutive block elements +are not separated by blank lines: + ```````````````````````````````` example -[foo](/föö "föö") +- a + > b + ``` + c + ``` +- d . -

foo

+
    +
  • a +
    +

    b

    +
    +
    c
    +
    +
  • +
  • d
  • +
```````````````````````````````` -```````````````````````````````` example -[foo] +A single-paragraph list is tight: -[foo]: /föö "föö" +```````````````````````````````` example +- a . -

foo

+
    +
  • a
  • +
```````````````````````````````` ```````````````````````````````` example -``` föö -foo -``` +- a + - b . -
foo
-
+
    +
  • a +
      +
    • b
    • +
    +
  • +
```````````````````````````````` -Entity and numeric character references are treated as literal -text in code spans and code blocks: +This list is loose, because of the blank line between the +two block elements in the list item: ```````````````````````````````` example -`föö` -. -

f&ouml;&ouml;

-```````````````````````````````` - +1. ``` + foo + ``` -```````````````````````````````` example - föfö + bar . -
f&ouml;f&ouml;
+
    +
  1. +
    foo
     
    +

    bar

    +
  2. +
```````````````````````````````` -Entity and numeric character references cannot be used -in place of symbols indicating structure in CommonMark -documents. +Here the outer list is loose, the inner list tight: ```````````````````````````````` example -*foo* -*foo* +* foo + * bar + + baz . -

*foo* -foo

+
    +
  • +

    foo

    +
      +
    • bar
    • +
    +

    baz

    +
  • +
```````````````````````````````` + ```````````````````````````````` example -* foo +- a + - b + - c -* foo +- d + - e + - f . -

* foo

    -
  • foo
  • +
  • +

    a

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

    d

    +
      +
    • e
    • +
    • f
    • +
    +
```````````````````````````````` -```````````````````````````````` example -foo bar -. -

foo -bar

-```````````````````````````````` +# Inlines + +Inlines are parsed sequentially from the beginning of the character +stream to the end (left to right, in left-to-right languages). +Thus, for example, in ```````````````````````````````` example - foo +`hi`lo` . -

→foo

+

hilo`

```````````````````````````````` +`hi` is parsed as code, leaving the backtick at the end as a literal +backtick. -```````````````````````````````` example -[a](url "tit") -. -

[a](url "tit")

-```````````````````````````````` ## Code spans @@ -5854,7 +5874,7 @@ preceded nor followed by a backtick. A [code span](@) begins with a backtick string and ends with a backtick string of equal length. The contents of the code span are -the characters between the two backtick strings, normalized in the +the characters between these two backtick strings, normalized in the following ways: - First, [line endings] are converted to [spaces]. @@ -6133,17 +6153,17 @@ a non-backslash-escaped `_` character. A [left-flanking delimiter run](@) is a [delimiter run] that is (1) not followed by [Unicode whitespace], -and either (2a) not followed by a [punctuation character], or -(2b) followed by a [punctuation character] and -preceded by [Unicode whitespace] or a [punctuation character]. +and either (2a) not followed by a [Unicode punctuation character], or +(2b) followed by a [Unicode punctuation character] and +preceded by [Unicode whitespace] or a [Unicode punctuation character]. For purposes of this definition, the beginning and the end of the line count as Unicode whitespace. A [right-flanking delimiter run](@) is a [delimiter run] that is (1) not preceded by [Unicode whitespace], -and either (2a) not preceded by a [punctuation character], or -(2b) preceded by a [punctuation character] and -followed by [Unicode whitespace] or a [punctuation character]. +and either (2a) not preceded by a [Unicode punctuation character], or +(2b) preceded by a [Unicode punctuation character] and +followed by [Unicode whitespace] or a [Unicode punctuation character]. For purposes of this definition, the beginning and the end of the line count as Unicode whitespace. @@ -6198,7 +6218,7 @@ The following rules define emphasis and strong emphasis: it is part of a [left-flanking delimiter run] and either (a) not part of a [right-flanking delimiter run] or (b) part of a [right-flanking delimiter run] - preceded by punctuation. + preceded by a [Unicode punctuation character]. 3. A single `*` character [can close emphasis](@) iff it is part of a [right-flanking delimiter run]. @@ -6207,7 +6227,7 @@ The following rules define emphasis and strong emphasis: it is part of a [right-flanking delimiter run] and either (a) not part of a [left-flanking delimiter run] or (b) part of a [left-flanking delimiter run] - followed by punctuation. + followed by a [Unicode punctuation character]. 5. A double `**` [can open strong emphasis](@) iff it is part of a [left-flanking delimiter run]. @@ -6216,7 +6236,7 @@ The following rules define emphasis and strong emphasis: it is part of a [left-flanking delimiter run] and either (a) not part of a [right-flanking delimiter run] or (b) part of a [right-flanking delimiter run] - preceded by punctuation. + preceded by a [Unicode punctuation character]. 7. A double `**` [can close strong emphasis](@) iff it is part of a [right-flanking delimiter run]. @@ -6225,7 +6245,7 @@ The following rules define emphasis and strong emphasis: it is part of a [right-flanking delimiter run] and either (a) not part of a [left-flanking delimiter run] or (b) part of a [left-flanking delimiter run] - followed by punctuation. + followed by a [Unicode punctuation character]. 9. Emphasis begins with a delimiter that [can open emphasis] and ends with a delimiter that [can close emphasis], and that uses the same @@ -6437,7 +6457,7 @@ whitespace: ```````````````````````````````` -A newline also counts as whitespace: +A line ending also counts as whitespace: ```````````````````````````````` example *foo bar @@ -6602,7 +6622,7 @@ __ foo bar__ ```````````````````````````````` -A newline counts as whitespace: +A line ending counts as whitespace: ```````````````````````````````` example __ foo bar__ @@ -6881,7 +6901,7 @@ emphasis sections in this example: The same condition ensures that the following cases are all strong emphasis nested inside -emphasis, even when the interior spaces are +emphasis, even when the interior whitespace is omitted: @@ -7458,13 +7478,14 @@ following rules apply: A [link destination](@) consists of either - a sequence of zero or more characters between an opening `<` and a - closing `>` that contains no line breaks or unescaped + closing `>` that contains no line endings or unescaped `<` or `>` characters, or -- a nonempty sequence of characters that does not start with - `<`, does not include ASCII space or control characters, and - includes parentheses only if (a) they are backslash-escaped or - (b) they are part of a balanced pair of unescaped parentheses. +- a nonempty sequence of characters that does not start with `<`, + does not include [ASCII control characters][ASCII control character] + or [space] character, and includes parentheses only if (a) they are + backslash-escaped or (b) they are part of a balanced pair of + unescaped parentheses. (Implementations may impose limits on parentheses nesting to avoid performance issues, but at least three levels of nesting should be supported.) @@ -7487,10 +7508,14 @@ Although [link titles] may span multiple lines, they may not contain a [blank line]. An [inline link](@) consists of a [link text] followed immediately -by a left parenthesis `(`, optional [whitespace], an optional -[link destination], an optional [link title] separated from the link -destination by [whitespace], optional [whitespace], and a right -parenthesis `)`. The link's text consists of the inlines contained +by a left parenthesis `(`, an optional [link destination], an optional +[link title], and a right parenthesis `)`. +These four components may be separated by spaces, tabs, and up to one line +ending. +If both [link destination] and [link title] are present, they *must* be +separated by spaces, tabs, and up to one line ending. + +The link's text consists of the inlines contained in the [link text] (excluding the enclosing square brackets). The link's URI consists of the link destination, excluding enclosing `<...>` if present, with backslash-escapes in effect as described @@ -7507,7 +7532,8 @@ Here is a simple inline link: ```````````````````````````````` -The title may be omitted: +The title, the link text and even +the destination may be omitted: ```````````````````````````````` example [link](/uri) @@ -7515,8 +7541,12 @@ The title may be omitted:

link

```````````````````````````````` +```````````````````````````````` example +[](./target.md) +. +

+```````````````````````````````` -Both the title and the destination may be omitted: ```````````````````````````````` example [link]() @@ -7531,6 +7561,13 @@ Both the title and the destination may be omitted:

link

```````````````````````````````` + +```````````````````````````````` example +[]() +. +

+```````````````````````````````` + The destination can only contain spaces if it is enclosed in pointy brackets: @@ -7546,7 +7583,7 @@ enclosed in pointy brackets:

link

```````````````````````````````` -The destination cannot contain line breaks, +The destination cannot contain line endings, even if enclosed in pointy brackets: ```````````````````````````````` example @@ -7615,6 +7652,13 @@ balanced: However, if you have unbalanced parentheses, you need to escape or use the `<...>` form: +```````````````````````````````` example +[link](foo(and(bar)) +. +

[link](foo(and(bar))

+```````````````````````````````` + + ```````````````````````````````` example [link](foo\(and\(bar\)) . @@ -7714,7 +7758,8 @@ may be used in titles: ```````````````````````````````` -Titles must be separated from the link using a [whitespace]. +Titles must be separated from the link using spaces, tabs, and up to one line +ending. Other [Unicode whitespace] like non-breaking space doesn't work. ```````````````````````````````` example @@ -7757,7 +7802,8 @@ titles with no closing quotation mark, though 1.0.2b8 does not. It seems preferable to adopt a simple, rational rule that works the same way in inline links and link reference definitions.) -[Whitespace] is allowed around the destination and title: +Spaces, tabs, and up to one line ending is allowed around the destination and +title: ```````````````````````````````` example [link]( /uri @@ -7908,7 +7954,8 @@ that [matches] a [link reference definition] elsewhere in the document. A [link label](@) begins with a left bracket (`[`) and ends with the first right bracket (`]`) that is not backslash-escaped. -Between these brackets there must be at least one [non-whitespace character]. +Between these brackets there must be at least one character that is not a space, +tab, or line ending. Unescaped square bracket characters are not allowed inside the opening and closing square brackets of [link labels]. A link label can have at most 999 characters inside the square @@ -7918,14 +7965,13 @@ One label [matches](@) another just in case their normalized forms are equal. To normalize a label, strip off the opening and closing brackets, perform the *Unicode case fold*, strip leading and trailing -[whitespace] and collapse consecutive internal -[whitespace] to a single space. If there are multiple +spaces, tabs, and line endings, and collapse consecutive internal +spaces, tabs, and line endings to a single space. If there are multiple matching reference link definitions, the one that comes first in the document is used. (It is desirable in such cases to emit a warning.) -The contents of the first link label are parsed as inlines, which are -used as the link's text. The link's URI and title are provided by the -matching [link reference definition]. +The link's URI and title are provided by the matching [link +reference definition]. Here is a simple example: @@ -8018,11 +8064,11 @@ emphasis grouping: ```````````````````````````````` example -[foo *bar][ref] +[foo *bar][ref]* [ref]: /uri . -

foo *bar

+

foo *bar*

```````````````````````````````` @@ -8070,15 +8116,15 @@ Matching is case-insensitive: Unicode case fold is used: ```````````````````````````````` example -[Толпой][Толпой] is a Russian word. +[ẞ] -[ТОЛПОЙ]: /url +[SS]: /url . -

Толпой is a Russian word.

+

```````````````````````````````` -Consecutive internal [whitespace] is treated as one space for +Consecutive internal spaces, tabs, and line endings are treated as one space for purposes of determining matching: ```````````````````````````````` example @@ -8091,7 +8137,7 @@ purposes of determining matching: ```````````````````````````````` -No [whitespace] is allowed between the [link text] and the +No spaces, tabs, or line endings are allowed between the [link text] and the [link label]: ```````````````````````````````` example @@ -8221,7 +8267,8 @@ Note that in this example `]` is not backslash-escaped: ```````````````````````````````` -A [link label] must contain at least one [non-whitespace character]: +A [link label] must contain at least one character that is not a space, tab, or +line ending: ```````````````````````````````` example [] @@ -8286,7 +8333,7 @@ The link labels are case-insensitive: -As with full reference links, [whitespace] is not +As with full reference links, spaces, tabs, or line endings are not allowed between the two sets of brackets: ```````````````````````````````` example @@ -8614,7 +8661,7 @@ The labels are case-insensitive: ```````````````````````````````` -As with reference links, [whitespace] is not allowed +As with reference links, spaces, tabs, and line endings, are not allowed between the two sets of brackets: ```````````````````````````````` example @@ -8707,9 +8754,9 @@ a link to the URI, with the URI as the link's label. An [absolute URI](@), for these purposes, consists of a [scheme] followed by a colon (`:`) -followed by zero or more characters other than ASCII -[whitespace] and control characters, `<`, and `>`. If -the URI includes these characters, they must be percent-encoded +followed by zero or more characters other [ASCII control +characters][ASCII control character], [space], `<`, and `>`. +If the URI includes these characters, they must be percent-encoded (e.g. `%20` for a space). For purposes of this spec, a [scheme](@) is any sequence @@ -8895,7 +8942,7 @@ A [tag name](@) consists of an ASCII letter followed by zero or more ASCII letters, digits, or hyphens (`-`). -An [attribute](@) consists of [whitespace], +An [attribute](@) consists of spaces, tabs, and up to one line ending, an [attribute name], and an optional [attribute value specification]. @@ -8905,9 +8952,9 @@ letters, digits, `_`, `.`, `:`, or `-`. (Note: This is the XML specification restricted to ASCII. HTML5 is laxer.) An [attribute value specification](@) -consists of optional [whitespace], -a `=` character, optional [whitespace], and an [attribute -value]. +consists of optional spaces, tabs, and up to one line ending, +a `=` character, optional spaces, tabs, and up to one line ending, +and an [attribute value]. An [attribute value](@) consists of an [unquoted attribute value], @@ -8915,7 +8962,7 @@ a [single-quoted attribute value], or a [double-quoted attribute value]. An [unquoted attribute value](@) is a nonempty string of characters not -including [whitespace], `"`, `'`, `=`, `<`, `>`, or `` ` ``. +including spaces, tabs, line endings, `"`, `'`, `=`, `<`, `>`, or `` ` ``. A [single-quoted attribute value](@) consists of `'`, zero or more @@ -8926,11 +8973,12 @@ consists of `"`, zero or more characters not including `"`, and a final `"`. An [open tag](@) consists of a `<` character, a [tag name], -zero or more [attributes], optional [whitespace], an optional `/` -character, and a `>` character. +zero or more [attributes], optional spaces, tabs, and up to one line ending, +an optional `/` character, and a `>` character. A [closing tag](@) consists of the string ``. +[tag name], optional spaces, tabs, and up to one line ending, and the character +`>`. An [HTML comment](@) consists of ``, where *text* does not start with `>` or `->`, does not end with `-`, @@ -8942,10 +8990,8 @@ consists of the string ``, and the string `?>`. -A [declaration](@) consists of the -string ``, and the character `>`. +A [declaration](@) consists of the string ``, and the character `>`. A [CDATA section](@) consists of the string `< @@ -9046,7 +9092,7 @@ bim!bop />

```````````````````````````````` -Missing [whitespace]: +Missing whitespace: ```````````````````````````````` example @@ -9158,7 +9204,7 @@ foo ## Hard line breaks -A line break (not in a code span or HTML tag) that is preceded +A line ending (not in a code span or HTML tag) that is preceded by two or more spaces and does not occur at the end of a block is parsed as a [hard line break](@) (rendered in HTML as a `
` tag): @@ -9173,7 +9219,7 @@ baz

For a more visible alternative, a backslash before the -[line ending] may be used instead of two spaces: +[line ending] may be used instead of two or more spaces: ```````````````````````````````` example foo\ @@ -9215,7 +9261,7 @@ bar

```````````````````````````````` -Line breaks can occur inside emphasis, links, and other constructs +Hard line breaks can occur inside emphasis, links, and other constructs that allow inline content: ```````````````````````````````` example @@ -9236,13 +9282,13 @@ bar

```````````````````````````````` -Line breaks do not occur inside code spans +Hard line breaks do not occur inside code spans ```````````````````````````````` example -`code +`code span` . -

code span

+

code span

```````````````````````````````` @@ -9308,9 +9354,9 @@ foo ## Soft line breaks -A regular line break (not in a code span or HTML tag) that is not +A regular line ending (not in a code span or HTML tag) that is not preceded by two or more spaces or a backslash is parsed as a -[softbreak](@). (A softbreak may be rendered in HTML either as a +[softbreak](@). (A soft line break may be rendered in HTML either as a [line ending] or as a space. The result will be the same in browsers. In the examples here, a [line ending] will be used.) @@ -9336,7 +9382,7 @@ baz

A conforming parser may render a soft line break in HTML either as a -line break or as a space. +line ending or as a space. A renderer may also provide an option to render soft line breaks as hard line breaks. @@ -9444,7 +9490,7 @@ blocks. But we cannot close unmatched blocks yet, because we may have a blocks, we look for new block starts (e.g. `>` for a block quote). If we encounter a new block start, we close any blocks unmatched in step 1 before creating the new block as a child of the last -matched block. +matched container block. 3. Finally, we look at the remainder of the line (after block markers like `>`, list markers, and indentation have been consumed). @@ -9660,8 +9706,9 @@ just above `stack_bottom` (or the first element if `stack_bottom` is NULL). We keep track of the `openers_bottom` for each delimiter -type (`*`, `_`) and each length of the closing delimiter run -(modulo 3). Initialize this to `stack_bottom`. +type (`*`, `_`), indexed to the length of the closing delimiter run +(modulo 3) and to whether the closing delimiter can also be an +opener. Initialize this to `stack_bottom`. Then we repeat the following until we run out of potential closers: @@ -9707,4 +9754,3 @@ closers: After we're done, we remove all delimiters above `stack_bottom` from the delimiter stack. -