From: Lady Date: Mon, 28 Apr 2025 00:42:16 +0000 (-0400) Subject: Quotes and brackets as multiparagraph divisions X-Git-Tag: 0.5.0~1 X-Git-Url: https://git.ladys.computer/LesML/commitdiff_plain/1192f5c276e839eaf6b7bbad5d31b0175a3e52ed?hp=e50e25b85b0c333d21c518043eca0b50f21e1b39 Quotes and brackets as multiparagraph divisions This commit introduces a new concept of multiparagraph divisions (where the lines within are re·analysed after the prefix is removed) and transitions block quotations to it. I resisted this for a long while because it’s less “simple”, but the precedent of preformatted text and the old quotation mechanism (which was kind of messy) was already conceptually close. And footer support really requires this. --- diff --git a/README.markdown b/README.markdown index 1979cd3..1643af2 100644 --- a/README.markdown +++ b/README.markdown @@ -52,6 +52,14 @@ Documents in the later case inherit the latest preceding `#!lesml` Documents are broken into paragraphs by blank lines. Empty paragraphs are ignored. + +If every line in the paragraph begins with (optional white·space + followed by) `»` it is quoted (``); if every line + begins with `]` it is bracketed. +The lines, minus this leading, are then re‐analysed. +Bracketed paragraphs which end quotes are treated as captions + (``); otherwise, they are footers (``). + Non·empty paragraphs are classified as follows :⁠— - If the paragraph consists of only the following section‐break @@ -98,21 +106,16 @@ Non·empty paragraphs are classified as follows :⁠— | `_` | `U+FF3F` | `FULLWIDTH LOW LINE` | | `~` | `U+FF5E` | `FULLWIDTH TILDE` | -- If every line in the paragraph begins with at least one space, then - it is considered to be a quoted paragraph (``). - There is only one level of paragraph quoting; quoted paragraphs may - not be quoted again. - - If every line in the paragraph begins with zero or more white·space characters followed by `|`, it is a “preformatted” paragraph and white·space is not collapsed (``). - A paragraph may be both quoted and preformatted. -- Otherwise, the paragraph is unquoted. +- Otherwise, the paragraph is ordinary. -After this classification, each quoted or unquoted paragraph is further +After this classification, each ordinary paragraph is further classified by type based on its first character (which is must be - followed by white·space, or else the only thing on the line) :⁠— + followed by white·space, a pilcrow, or else the only thing on the + line) :⁠— - If the paragraph is preformatted, it is an ordinary paragraph. @@ -172,10 +175,8 @@ After this classification, each quoted or unquoted paragraph is further - If the paragraph begins with `⋯`, it is a continuation paragraph (``). - Continuation paragraphs may be used to continue a preceding list item - or quote. - Note, however, that an unquoted paragraph cannot continue a quoted - one, or vice·versa. + Continuation paragraphs may be used to continue a preceding div or + list item. - Otherwise, it is an ordinary paragraph. @@ -202,7 +203,8 @@ Markup within paragraphs is delimited with·out exception by pairs of white·space‐only text nodes after elements ignored; if there is no such previous element or text node, an empty text node is used instead. - Multiple attributes can be given in sequence. + Multiple attributes can be given in sequence using multiple + specifications. Text nodes with attributes are wrapped in ``. - The characters `{🔗` and `>}` indicate a hyperlink to a U·R·L @@ -241,13 +243,8 @@ Markup within paragraphs is delimited with·out exception by pairs of Once the tree is built as above, it is remediated into its final form by the following steps :⁠— -- Successive quoted paragraphs are joined into one quote. - If the final quoted paragraph is an ordinary paragraph which begins - with `—` and a space, the quote is wrapped in a `` - and the final paragraph becomes its ``. - - Continuation paragraphs are joined with the preceding list items or - quotes. + divs. - List items of a higher level are nested in preceding list items, when present. diff --git a/parser.xslt b/parser.xslt index 186e389..99ee743 100644 --- a/parser.xslt +++ b/parser.xslt @@ -13,7 +13,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one --> - + @@ -32,6 +32,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one version="1.0" > <书社:id>urn:fdc:ladys.computer:20240512:LesML:parser.xslt + -