-
-
Notifications
You must be signed in to change notification settings - Fork 338
Description
Let's talk about block quotes.
A block quote marker consists of 0-3 spaces of initial indent, plus (a) the character > together with a following space, or (b) a single character > not followed by a space.
The following rules define block quotes:
The following sections needs rephrasing.
- Basic case. If a string of lines Ls constitute a sequence of blocks Bs, then the result of prepending a block quote marker to the beginning of each line in Ls is a block quote containing Bs.
Which block quote marker? There are two versions of the basic case for each line added.
- Laziness. 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.
Again, we have the problem of "which blockquote marker?".
These are not definitions. At best they are multivalued "functions".
They do not describe a which text constitutes a block quote, they describe how some contents Cs may be mapped to a block quote.
These maps are not invertible. As in, a single block quote may map to multiple versions of the contents Cs (by choosing different markers), and you can check that all versions of these contents may be mapped back to this block quote by choosing different markers (though they of course cannot be mapped uniquely).
Because there is no unique way to determine a block quote's contents, these cannot be definitions.
If these points are specified in a way such that the contents does become uniquely defined, then it would serve to be less ambiguous by stating the inversion of the current map provided (so that a block quote may be identified based on the lines that actually define it, which is how a parser would have to work in practice).