Yes, yes: that’s in the spec, [example 186][ex-186] is an example for such an example illustrating this …
Laziness is a transformation you can perform on a non-lazy document that creates a document with the same meaning.
That’s precisely how I think of it.
The transformation is this: if you’ve got paragraph continuation lines with block quote markers in front of them, you can remove the block quote markers.
That’s precisely what I want to do—I’m that lazy.
On lines with indicators of new block structure (i.e., non-paragraph continuation lines), you can’t remove the block quote markers. That would just cause too much confusion.
To be honest, I find the pre-condition for removing the quote block marker, not exactly “non-confusing”:
If a string of lines Ls constitute a block quote with contents Bs, then the result of deleting the initial block quote marker from one or more lines in which the next non-whitespace character after the block quote marker is paragraph continuation text is a block quote with Bs as its content. Paragraph continuation text is text that will be parsed as part of the content of a paragraph, but does not occur at the beginning of the paragraph.
Could it be that much of the cause for confusion (which the lazy continuation line rule is supposed to avoid?) stems—again—from allowing nested constructs to begin right in the middle of an ordinary block?
I’ll have to think about this; for now I’d like to recap:
- I find the lazy continuation rules for blockquote pretty unintelligible: both hard to understand, and even harder to relate to a rationale;
- There’s quite some variation in the handling of this issue in other implementations.
Thanks for your explanations, though!
[ex-186]: CommonMark Spec (CommonMark spec, ex. 186)