diff --git a/spec.txt b/spec.txt index 3f6bf0f9..0a2cd3de 100644 --- a/spec.txt +++ b/spec.txt @@ -3467,16 +3467,6 @@ bar
```````````````````````````````` -```````````````````````````````` 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 '
+'
+[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]:
+ +[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] +. + +```````````````````````````````` + +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] +. ++ ++```````````````````````````````` ## Paragraphs