From 6f1f4e312016261143b3ebf91e35a1ddb805cdf1 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 6 Apr 2019 10:18:56 -0700 Subject: Update spec. --- test/spec.txt | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 83 insertions(+), 7 deletions(-) diff --git a/test/spec.txt b/test/spec.txt index 6384390..4ca3aa0 100644 --- a/test/spec.txt +++ b/test/spec.txt @@ -5601,13 +5601,23 @@ foo ## Entity and numeric character references -All valid HTML entity references and numeric character -references, except those occurring in code blocks and code spans, -are recognized as such and treated as equivalent to the -corresponding Unicode characters. 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. +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 @@ -5745,6 +5755,51 @@ text in code spans and code blocks: ```````````````````````````````` +Entity and numeric character references cannot be used +in place of symbols indicating structure in CommonMark +documents. + +```````````````````````````````` example +*foo* +*foo* +. +

*foo* +foo

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

* foo

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

foo + +bar

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

→foo

+```````````````````````````````` + + +```````````````````````````````` example +[a](url "tit") +. +

[a](url "tit")

+```````````````````````````````` + + ## Code spans A [backtick string](@) @@ -7464,6 +7519,15 @@ bar>) bar>)

```````````````````````````````` +The destination can contain `)` if it is enclosed +in pointy brackets: + +```````````````````````````````` example +[a]() +. +

a

+```````````````````````````````` + Pointy brackets that enclose links must be unescaped: ```````````````````````````````` example @@ -7472,6 +7536,18 @@ Pointy brackets that enclose links must be unescaped:

[link](<foo>)

```````````````````````````````` +These are not links, because the opening pointy bracket +is not matched properly: + +```````````````````````````````` example +[a]( +[a](c) +. +

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

+```````````````````````````````` Parentheses inside the link destination may be escaped: -- cgit v1.2.3