spec.txt | spec.txt | |||
---|---|---|---|---|
--- | --- | |||
title: CommonMark Spec | title: CommonMark Spec | |||
author: John MacFarlane | author: John MacFarlane | |||
version: 0.16 | version: 0.17 | |||
date: 2015-01-14 | date: 2015-01-24 | |||
license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)' | license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)' | |||
... | ... | |||
# Introduction | # Introduction | |||
## What is Markdown? | ## What is Markdown? | |||
Markdown is a plain text format for writing structured documents, | Markdown is a plain text format for writing structured documents, | |||
based on conventions used for indicating formatting in email and | based on conventions used for indicating formatting in email and | |||
usenet posts. It was developed in 2004 by John Gruber, who wrote | usenet posts. It was developed in 2004 by John Gruber, who wrote | |||
skipping to change at line 3929 | skipping to change at line 3929 | |||
. | . | |||
<ul> | <ul> | |||
<li>a | <li>a | |||
<ul> | <ul> | |||
<li>b</li> | <li>b</li> | |||
</ul> | </ul> | |||
</li> | </li> | |||
</ul> | </ul> | |||
. | . | |||
This list is loose, because of the blank line between the | ||||
two block elements in the list item: | ||||
. | ||||
1. ``` | ||||
foo | ||||
``` | ||||
bar | ||||
. | ||||
<ol> | ||||
<li> | ||||
<pre><code>foo | ||||
</code></pre> | ||||
<p>bar</p> | ||||
</li> | ||||
</ol> | ||||
. | ||||
Here the outer list is loose, the inner list tight: | Here the outer list is loose, the inner list tight: | |||
. | . | |||
* foo | * foo | |||
* bar | * bar | |||
baz | baz | |||
. | . | |||
<ul> | <ul> | |||
<li> | <li> | |||
skipping to change at line 4499 | skipping to change at line 4518 | |||
run," and its rules for distinguishing left- and right-flanking runs | run," and its rules for distinguishing left- and right-flanking runs | |||
are a bit more complex than the ones given here.) | are a bit more complex than the ones given here.) | |||
The following rules define emphasis and strong emphasis: | The following rules define emphasis and strong emphasis: | |||
1. A single `*` character [can open emphasis](@can-open-emphasis) | 1. A single `*` character [can open emphasis](@can-open-emphasis) | |||
iff it is part of a [left-flanking delimiter run]. | iff it is part of a [left-flanking delimiter run]. | |||
2. A single `_` character [can open emphasis] iff | 2. A single `_` character [can open emphasis] iff | |||
it is part of a [left-flanking delimiter run] | it is part of a [left-flanking delimiter run] | |||
and is not preceded by an ASCII alphanumeric character. | and not part of a [right-flanking delimiter run]. | |||
3. A single `*` character [can close emphasis](@can-close-emphasis) | 3. A single `*` character [can close emphasis](@can-close-emphasis) | |||
iff it is part of a [right-flanking delimiter run]. | iff it is part of a [right-flanking delimiter run]. | |||
4. A single `_` character [can close emphasis] | 4. A single `_` character [can close emphasis] | |||
iff it is part of a [right-flanking delimiter run]. | iff it is part of a [right-flanking delimiter run] | |||
and it is not followed by an ASCII alphanumeric character. | and not part of a [left-flanking delimiter run]. | |||
5. A double `**` [can open strong emphasis](@can-open-strong-emphasis) | 5. A double `**` [can open strong emphasis](@can-open-strong-emphasis) | |||
iff it is part of a [left-flanking delimiter run]. | iff it is part of a [left-flanking delimiter run]. | |||
6. A double `__` [can open strong emphasis] | 6. A double `__` [can open strong emphasis] | |||
iff it is part of a [left-flanking delimiter run] | iff it is part of a [left-flanking delimiter run] | |||
and is not preceded by an ASCII alphanumeric character. | and not part of a [right-flanking delimiter run]. | |||
7. A double `**` [can close strong emphasis](@can-close-strong-emphasis) | 7. A double `**` [can close strong emphasis](@can-close-strong-emphasis) | |||
iff it is part of a [right-flanking delimiter run]. | iff it is part of a [right-flanking delimiter run]. | |||
8. A double `__` [can close strong emphasis] | 8. A double `__` [can close strong emphasis] | |||
iff it is part of a [right-flanking delimiter run] | iff it is part of a [right-flanking delimiter run] | |||
and is not followed by an ASCII alphanumeric character. | and not part of a [left-flanking delimiter run]. | |||
9. Emphasis begins with a delimiter that [can open emphasis] and ends | 9. Emphasis begins with a delimiter that [can open emphasis] and ends | |||
with a delimiter that [can close emphasis], and that uses the same | with a delimiter that [can close emphasis], and that uses the same | |||
character (`_` or `*`) as the opening delimiter. There must | character (`_` or `*`) as the opening delimiter. There must | |||
be a nonempty sequence of inlines between the open delimiter | be a nonempty sequence of inlines between the open delimiter | |||
and the closing delimiter; these form the contents of the emphasis | and the closing delimiter; these form the contents of the emphasis | |||
inline. | inline. | |||
10. Strong emphasis begins with a delimiter that | 10. Strong emphasis begins with a delimiter that | |||
[can open strong emphasis] and ends with a delimiter that | [can open strong emphasis] and ends with a delimiter that | |||
skipping to change at line 4653 | skipping to change at line 4672 | |||
This is not emphasis, because the opening `_` is preceded | This is not emphasis, because the opening `_` is preceded | |||
by an alphanumeric and followed by punctuation: | by an alphanumeric and followed by punctuation: | |||
. | . | |||
a_"foo"_ | a_"foo"_ | |||
. | . | |||
<p>a_"foo"_</p> | <p>a_"foo"_</p> | |||
. | . | |||
Emphasis with `_` is not allowed inside ASCII words: | Emphasis with `_` is not allowed inside words: | |||
. | . | |||
foo_bar_ | foo_bar_ | |||
. | . | |||
<p>foo_bar_</p> | <p>foo_bar_</p> | |||
. | . | |||
. | . | |||
5_6_78 | 5_6_78 | |||
. | . | |||
<p>5_6_78</p> | <p>5_6_78</p> | |||
. | . | |||
But it is permitted inside non-ASCII words: | ||||
. | . | |||
пристаням_стремятся_ | пристаням_стремятся_ | |||
. | . | |||
<p>пристаням<em>стремятся</em></p> | <p>пристаням_стремятся_</p> | |||
. | ||||
Here `_` does not generate emphasis, because the first delimiter run | ||||
is right-flanking and the second left-flanking: | ||||
. | ||||
aa_"bb"_cc | ||||
. | ||||
<p>aa_"bb"_cc</p> | ||||
. | ||||
Here there is no emphasis, because the delimiter runs are | ||||
both left- and right-flanking: | ||||
. | ||||
"aa"_"bb"_"cc" | ||||
. | ||||
<p>"aa"_"bb"_"cc"</p> | ||||
. | . | |||
Rule 3: | Rule 3: | |||
This is not emphasis, because the closing delimiter does | This is not emphasis, because the closing delimiter does | |||
not match the opening delimiter: | not match the opening delimiter: | |||
. | . | |||
_foo* | _foo* | |||
. | . | |||
skipping to change at line 4761 | skipping to change at line 4796 | |||
. | . | |||
_foo_bar | _foo_bar | |||
. | . | |||
<p>_foo_bar</p> | <p>_foo_bar</p> | |||
. | . | |||
. | . | |||
_пристаням_стремятся | _пристаням_стремятся | |||
. | . | |||
<p><em>пристаням</em>стремятся</p> | <p>_пристаням_стремятся</p> | |||
. | . | |||
. | . | |||
_foo_bar_baz_ | _foo_bar_baz_ | |||
. | . | |||
<p><em>foo_bar_baz</em></p> | <p><em>foo_bar_baz</em></p> | |||
. | . | |||
Rule 5: | Rule 5: | |||
skipping to change at line 4848 | skipping to change at line 4883 | |||
. | . | |||
5__6__78 | 5__6__78 | |||
. | . | |||
<p>5__6__78</p> | <p>5__6__78</p> | |||
. | . | |||
. | . | |||
пристаням__стремятся__ | пристаням__стремятся__ | |||
. | . | |||
<p>пристаням<strong>стремятся</strong></p> | <p>пристаням__стремятся__</p> | |||
. | . | |||
. | . | |||
__foo, __bar__, baz__ | __foo, __bar__, baz__ | |||
. | . | |||
<p><strong>foo, <strong>bar</strong>, baz</strong></p> | <p><strong>foo, <strong>bar</strong>, baz</strong></p> | |||
. | . | |||
Rule 7: | Rule 7: | |||
skipping to change at line 4951 | skipping to change at line 4986 | |||
. | . | |||
__foo__bar | __foo__bar | |||
. | . | |||
<p>__foo__bar</p> | <p>__foo__bar</p> | |||
. | . | |||
. | . | |||
__пристаням__стремятся | __пристаням__стремятся | |||
. | . | |||
<p><strong>пристаням</strong>стремятся</p> | <p>__пристаням__стремятся</p> | |||
. | . | |||
. | . | |||
__foo__bar__baz__ | __foo__bar__baz__ | |||
. | . | |||
<p><strong>foo__bar__baz</strong></p> | <p><strong>foo__bar__baz</strong></p> | |||
. | . | |||
Rule 9: | Rule 9: | |||
skipping to change at line 5603 | skipping to change at line 5638 | |||
The destination cannot contain line breaks, even with pointy braces: | The destination cannot contain line breaks, even with pointy braces: | |||
. | . | |||
[link](foo | [link](foo | |||
bar) | bar) | |||
. | . | |||
<p>[link](foo | <p>[link](foo | |||
bar)</p> | bar)</p> | |||
. | . | |||
. | ||||
[link](<foo | ||||
bar>) | ||||
. | ||||
<p>[link](<foo | ||||
bar>)</p> | ||||
. | ||||
One level of balanced parentheses is allowed without escaping: | One level of balanced parentheses is allowed without escaping: | |||
. | . | |||
[link]((foo)and(bar)) | [link]((foo)and(bar)) | |||
. | . | |||
<p><a href="(foo)and(bar)">link</a></p> | <p><a href="(foo)and(bar)">link</a></p> | |||
. | . | |||
However, if you have parentheses within parentheses, you need to escape | However, if you have parentheses within parentheses, you need to escape | |||
or use the `<...>` form: | or use the `<...>` form: | |||
End of changes. 13 change blocks. | ||||
14 lines changed or deleted | 57 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |