From 4c100655daba5b88e7f15d1802448cc5c79c50f2 Mon Sep 17 00:00:00 2001
From: Alex Kocharin
_
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4368 + +. +_*_ +. +*
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4374 + +. +*__* +. +__
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4380 + +. +_**_ +. +**
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4388 . foo*bar*baz @@ -3710,7 +3746,7 @@ foo*bar*baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4356 +src line: 4394 . foo_bar_baz @@ -3719,7 +3755,7 @@ foo_bar_baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4362 +src line: 4400 . foo__bar__baz @@ -3728,7 +3764,7 @@ foo__bar__baz . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4368 +src line: 4406 . _foo_bar_baz_ @@ -3737,7 +3773,7 @@ _foo_bar_baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4374 +src line: 4412 . 11*15*32 @@ -3746,7 +3782,7 @@ src line: 4374 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4380 +src line: 4418 . 11_15_32 @@ -3755,7 +3791,7 @@ src line: 4380 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4389 +src line: 4427 . _foo_bar_baz_ @@ -3764,7 +3800,7 @@ _foo_bar_baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4395 +src line: 4433 . __foo__bar__baz__ @@ -3773,7 +3809,7 @@ __foo__bar__baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4403 +src line: 4441 . ***foo bar*** @@ -3782,7 +3818,7 @@ src line: 4403 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4409 +src line: 4447 . ___foo bar___ @@ -3791,7 +3827,7 @@ ___foo bar___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4415 +src line: 4453 . ***foo** bar* @@ -3800,7 +3836,7 @@ src line: 4415 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4421 +src line: 4459 . ___foo__ bar_ @@ -3809,7 +3845,7 @@ ___foo__ bar_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4427 +src line: 4465 . ***foo* bar** @@ -3818,7 +3854,7 @@ src line: 4427 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4433 +src line: 4471 . ___foo_ bar__ @@ -3827,7 +3863,7 @@ ___foo_ bar__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4439 +src line: 4477 . *foo **bar*** @@ -3836,7 +3872,7 @@ src line: 4439 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4445 +src line: 4483 . _foo __bar___ @@ -3845,7 +3881,7 @@ _foo __bar___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4451 +src line: 4489 . **foo *bar*** @@ -3854,7 +3890,7 @@ src line: 4451 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4457 +src line: 4495 . __foo _bar___ @@ -3863,7 +3899,7 @@ __foo _bar___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4463 +src line: 4501 . *foo **bar*** @@ -3872,7 +3908,7 @@ src line: 4463 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4469 +src line: 4507 . _foo __bar___ @@ -3881,7 +3917,7 @@ _foo __bar___ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4475 +src line: 4513 . *foo *bar* baz* @@ -3890,7 +3926,7 @@ src line: 4475 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4481 +src line: 4519 . _foo _bar_ baz_ @@ -3899,7 +3935,7 @@ _foo _bar_ baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4487 +src line: 4525 . **foo **bar** baz** @@ -3908,7 +3944,7 @@ src line: 4487 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4493 +src line: 4531 . __foo __bar__ baz__ @@ -3917,7 +3953,7 @@ __foo __bar__ baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4499 +src line: 4537 . *foo **bar** baz* @@ -3926,7 +3962,7 @@ src line: 4499 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4505 +src line: 4543 . _foo __bar__ baz_ @@ -3935,7 +3971,7 @@ _foo __bar__ baz_ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4511 +src line: 4549 . **foo *bar* baz** @@ -3944,7 +3980,7 @@ src line: 4511 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4517 +src line: 4555 . __foo _bar_ baz__ @@ -3953,7 +3989,43 @@ __foo _bar_ baz__ . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4527 +src line: 4561 + +. +**foo, *bar*, baz** +. +foo, bar, baz
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4567 + +. +__foo, _bar_, baz__ +. +foo, bar, baz
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4575 + +. +*foo**bar**baz* +. +foobarbaz
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4581 + +. +**foo*bar*baz** +. +foobarbaz**
+. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +src line: 4595 . **foo** @@ -3962,7 +4034,7 @@ src line: 4527 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4533 +src line: 4601 . ****foo**** @@ -3971,7 +4043,7 @@ src line: 4533 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4541 +src line: 4609 . *_foo_* @@ -3980,7 +4052,7 @@ src line: 4541 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4547 +src line: 4615 . **__foo__** @@ -3989,7 +4061,7 @@ src line: 4547 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4557 +src line: 4625 . *foo** @@ -3998,7 +4070,7 @@ src line: 4557 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4563 +src line: 4631 . *foo *bar** @@ -4007,7 +4079,7 @@ src line: 4563 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4569 +src line: 4637 . **foo*** @@ -4016,7 +4088,7 @@ src line: 4569 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4575 +src line: 4643 . ***foo* bar*** @@ -4025,7 +4097,7 @@ src line: 4575 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4581 +src line: 4649 . ***foo** bar*** @@ -4034,7 +4106,7 @@ src line: 4581 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4590 +src line: 4658 . *foo**bar*** @@ -4043,7 +4115,7 @@ src line: 4590 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4598 +src line: 4666 . *foo**** @@ -4052,7 +4124,7 @@ src line: 4598 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4606 +src line: 4674 . *foo** @@ -4060,11 +4132,11 @@ src line: 4606 **foo* .foo*
-**foo*
+*foo
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4615 +src line: 4683 . *foo *bar** @@ -4072,20 +4144,11 @@ src line: 4615 **foo* bar* .foo bar
-**foo* bar*
+foo bar
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4626 - -. -**foo* bar* -. -**foo* bar*
-. - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4632 +src line: 4694 . *bar*** @@ -4094,16 +4157,16 @@ src line: 4632 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4638 +src line: 4700 . ***foo* . -***foo*
+**foo
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4644 +src line: 4706 . **bar*** @@ -4112,16 +4175,16 @@ src line: 4644 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4650 +src line: 4712 . ***foo** . -***foo**
+*foo
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4656 +src line: 4718 . ***foo *bar* @@ -4130,7 +4193,7 @@ src line: 4656 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4728 +src line: 4790 . [link](/uri "title") @@ -4139,7 +4202,7 @@ src line: 4728 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4736 +src line: 4798 . [link](/uri) @@ -4148,7 +4211,7 @@ src line: 4736 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4744 +src line: 4806 . [link]() @@ -4157,7 +4220,7 @@ src line: 4744 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4750 +src line: 4812 . [link](<>) @@ -4166,7 +4229,7 @@ src line: 4750 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4760 +src line: 4822 . [link](/my uri) @@ -4175,7 +4238,7 @@ src line: 4760 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4766 +src line: 4828 . [link]() @@ -4184,7 +4247,7 @@ src line: 4766 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4774 +src line: 4836 . [link](foo @@ -4195,7 +4258,7 @@ bar) . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4784 +src line: 4846 . [link]((foo)and(bar)) @@ -4204,7 +4267,7 @@ src line: 4784 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4793 +src line: 4855 . [link](foo(and(bar))) @@ -4213,7 +4276,7 @@ src line: 4793 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4799 +src line: 4861 . [link](foo(and\(bar\))) @@ -4222,7 +4285,7 @@ src line: 4799 . ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 4805 +src line: 4867 . [link](http://google.com
+http://example.com
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5556 +src line: 5619 . -foo@bar.baz.com +foo@bar.example.com . -foo@bar.baz.com
+foo@bar.example.com
. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -src line: 5640 +src line: 5703 .©
. -Strings that are not on the list of HTML5 named entities are not recognized as entities either: +Strings that are not on the list of HTML5 named entities are not +recognized as entities either: . &MadeUpEntity; @@ -4035,7 +4042,7 @@ for efficient parsing strategies that do not backtrack: (a) it is not part of a sequence of four or more unescaped `*`s, (b) it is not followed by whitespace, and (c) either it is not followed by a `*` character or it is - followed immediately by strong emphasis. + followed immediately by emphasis or strong emphasis. 2. A single `_` character [can open emphasis](#can-open-emphasis) iff @@ -4043,7 +4050,7 @@ for efficient parsing strategies that do not backtrack: (b) it is not followed by whitespace, (c) it is not preceded by an ASCII alphanumeric character, and (d) either it is not followed by a `_` character or it is - followed immediately by strong emphasis. + followed immediately by emphasis or strong emphasis. 3. A single `*` character [can close emphasis](#can-close-emphasis) iff @@ -4099,6 +4106,11 @@ for efficient parsing strategies that do not backtrack: emphasis](#can-close-strong-emphasis), and that uses the same character (`_` or `*`) as the opening delimiter, is reached. +11. In case of ambiguity, strong emphasis takes precedence. Thus, + `**foo**` is `foo`, not `foo`, + and `***foo***` is `foo`, not + `foo` or `foo`. + These rules can be illustrated through a series of examples. Simple emphasis: @@ -4345,6 +4357,32 @@ __this is a double underscore (`__`)__this is a double underscore (__
)
_
+. + +. +_*_ +. +*
+. + +. +*__* +. +__
+. + +. +_**_ +. +**
+. + `*` delimiters allow intra-word emphasis; `_` delimiters do not: . @@ -4520,6 +4558,36 @@ __foo _bar_ baz__foo bar baz
. +. +**foo, *bar*, baz** +. +foo, bar, baz
+. + +. +__foo, _bar_, baz__ +. +foo, bar, baz
+. + +But note: + +. +*foo**bar**baz* +. +foobarbaz
+. + +. +**foo*bar*baz** +. +foobarbaz**
+. + +The difference is that in the two preceding cases, +the internal delimiters [can close emphasis](#can-close-emphasis), +while in the cases with spaces, they cannot. + Note that you cannot nest emphasis directly inside emphasis using the same delimeter, or strong emphasis directly inside strong emphasis: @@ -4601,7 +4669,7 @@ However, a string of four or more `****` can never close emphasis:*foo****
. -Note that there are some asymmetries here: +We retain symmetry in these cases: . *foo** @@ -4609,7 +4677,7 @@ Note that there are some asymmetries here: **foo* .foo*
-**foo*
+*foo
. . @@ -4618,17 +4686,11 @@ Note that there are some asymmetries here: **foo* bar* .foo bar
-**foo* bar*
+foo bar
. More cases with mismatched delimiters: -. -**foo* bar* -. -**foo* bar*
-. - . *bar*** . @@ -4638,7 +4700,7 @@ More cases with mismatched delimiters: . ***foo* . -***foo*
+**foo
. . @@ -4650,7 +4712,7 @@ More cases with mismatched delimiters: . ***foo** . -***foo**
+*foo
. . @@ -4817,9 +4879,10 @@ in Markdown: . -URL-escaping and should be left alone inside the destination, as all URL-escaped characters -are also valid URL characters. HTML entities in the destination will be parsed into their UTF8 -codepoints, as usual, and optionally URL-escaped when written as HTML. +URL-escaping should be left alone inside the destination, as all +URL-escaped characters are also valid URL characters. HTML entities in +the destination will be parsed into their UTF-8 codepoints, as usual, and +optionally URL-escaped when written as HTML. . [link](foo%20bä) @@ -5504,9 +5567,9 @@ spec](http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-m Examples of email autolinks: . -http://google.com
+http://example.com
. . -foo@bar.baz.com +foo@bar.example.com . -foo@bar.baz.com
+foo@bar.example.com
. ## Raw HTML