diff --git a/spec.txt b/spec.txt index 3f6bf0f9..0a2cd3de 100644 --- a/spec.txt +++ b/spec.txt @@ -3467,16 +3467,6 @@ bar

foo

```````````````````````````````` -```````````````````````````````` example -[foo]: /url -=== -[foo] -. -

=== -foo

-```````````````````````````````` - - Several [link reference definitions] can occur one after another, without intervening blank lines. @@ -3485,7 +3475,6 @@ can occur one after another, without intervening blank lines. [bar]: /bar-url "bar" [baz]: /baz-url - [foo], [bar], [baz] @@ -3495,6 +3484,120 @@ can occur one after another, without intervening blank lines. baz

```````````````````````````````` +The text of a link reference definition can be interrupted by any block element +that can interrupt a paragraph. These are not definitions at all, +because what would be a multi-line title is interrupted +by a heading, quoted text, and a fenced code block: + +```````````````````````````````` example +[foo]: /url ' +# h1 +' + +[foo]: /url ' +> quote +' + +[foo]: /url ' +``` +text +``` +' + +[foo] +. +

[foo]: /url '

+

h1

+

'

+

[foo]: /url '

+
+

quote +'

+
+

[foo]: /url '

+
text
+
+

'

+

[foo]

+```````````````````````````````` + +This isn't a two-line definition because the list interrupts the title, +leaving a one-line definition: + +```````````````````````````````` example +[foo]: /url +' +- list item +' + +[foo] +. +

'

+ +

foo

+```````````````````````````````` + +It is also possible for the URL itself to be interrupted: + +```````````````````````````````` example +[foo]: +# +[foo] +. +

[foo]:

+

+

[foo]

+```````````````````````````````` + + +Because an indented code block cannot interrupt a paragraph, +it also cannot interrupt a link reference definition: + +```````````````````````````````` example +[foo]: /url ' + not a code block +' + +[foo] +. +

foo

+```````````````````````````````` + +Both of these are valid link reference definitions, +leaving no text for `===` to create a setext heading: + +```````````````````````````````` example +[foo]: /url +=== +[foo] +. +

=== +foo

+```````````````````````````````` + +```````````````````````````````` example +[foo]: /url 'bar' +=== +[foo] +. +

=== +foo

+```````````````````````````````` + +```````````````````````````````` example +[foo]: /url +'bar' +=== +[foo] +. +

=== +foo

+```````````````````````````````` [Link reference definitions] can occur inside block containers, like lists and block quotations. They @@ -3511,6 +3614,21 @@ are defined: ```````````````````````````````` +The text in a link reference definition can be continued +using the same rules as for [paragraph continuation text]: + +```````````````````````````````` example +> [foo]: /url ' +hello +' +> [foo] +. +
+

foo

+
+```````````````````````````````` ## Paragraphs