diff --git a/spec.txt b/spec.txt index 3f6bf0f9..d6ef8e10 100644 --- a/spec.txt +++ b/spec.txt @@ -3467,15 +3467,6 @@ bar
```````````````````````````````` -```````````````````````````````` example -[foo]: /url -=== -[foo] -. -=== -foo
-```````````````````````````````` - Several [link reference definitions] can occur one after another, without intervening blank lines. @@ -3485,7 +3476,6 @@ can occur one after another, without intervening blank lines. [bar]: /bar-url "bar" [baz]: /baz-url - [foo], [bar], [baz] @@ -3496,6 +3486,126 @@ can occur one after another, without intervening blank lines. ```````````````````````````````` +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] bar
+```````````````````````````````` + + +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] +. + +```````````````````````````````` + + +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 affect the entire document, not just the container in which they @@ -3512,6 +3622,23 @@ 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 A sequence of non-blank lines that cannot be interpreted as other