]> Lady’s Gitweb - LesML/blobdiff - README.markdown
Enable nested tags of the same kind
[LesML] / README.markdown
index 7df7fdecb1a948fff11ff43c224747226f330884..6b43717951f1345d24ca2648abfa94a2ec7299ef 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady>
+SPDX-FileCopyrightText: 2024, 2025 Lady <https://www.ladys.computer/about/#lady>
 SPDX-License-Identifier: CC0-1.0
 -->
 # 💄📝 Les·M·L
@@ -43,6 +43,13 @@ Following the shebang line, document metadata may be provided in the
 The body of the document begins after the last line which begins with
   the string `%%`, or after the shebang line if none exists.
 
+Multiple documents can be catenated into a single file; a new document
+  is begun on any line which starts with `#!lesml` or `##`.
+Documents in the later case inherit the latest preceding `#!lesml`
+  declaration.
+`##` may be followed by other text; this is treated as an interdocument
+  comment.
+
 Documents are broken into paragraphs by blank lines.
 Empty paragraphs are ignored.
 Non·empty paragraphs are classified as follows :⁠—
@@ -55,7 +62,6 @@ Non·empty paragraphs are classified as follows :⁠—
 
   | Character | Codepoint | Unicode Name |
   | --------- | --------- | ------------ |
-  | `#` | `U+0023` | `NUMBER SIGN` |
   | `*` | `U+002A` | `ASTERISK` |
   | `-` | `U+002D` | `HYPHEN-MINUS` |
   | `.` | `U+002E` | `FULL STOP` |
@@ -97,11 +103,18 @@ Non·empty paragraphs are classified as follows :⁠—
   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 (`<html:pre>`).
+  A paragraph may be both quoted and preformatted.
+
 - Otherwise, the paragraph is unquoted.
 
 After this classification, each quoted or unquoted paragraph is further
   classified by type based on its first character (which is must be
-   followed by white·space to be recognized) :⁠—
+   followed by white·space, or else the only thing on the line) :⁠—
+
+- If the paragraph is preformatted, it is an ordinary paragraph.
 
 - If the paragraph begins with `⁌`, it is a chapter heading
     (`<html:h1>`).
@@ -153,6 +166,10 @@ After this classification, each quoted or unquoted paragraph is further
 - If the paragraph begins with `⚠︎`, it is a warning note
     (`<html:div role="note" class="warn">`).
 
+- If the paragraph begins with `#`, it is a comment.
+  Comments produce X·M·L comment nodes and can be used to break up list
+    items into separate lists.
+
 - If the paragraph begins with `⋯`, it is a continuation paragraph
     (`<html:div class="continuation">`).
   Continuation paragraphs may be used to continue a preceding list item
@@ -221,11 +238,13 @@ Once the tree is built as above, it is remediated into its final form
 - Successive list items of the same level and class are joined into
     a single list.
 
+- Linebreaks in preformatted paragraphs are replaced with `<html:br>`.
+
 Finally, any character can be escaped by instead providing its Unicode
-  codepoint in the form `<U+NNNN>`, where `NNNN` is one or more
+  codepoint in the form `{U+NNNN}`, where `NNNN` is one or more
   hexadecimal digits.
 Multiple codepoints may be provided separated by periods, as in
-  `<U+WWWW.ZZZZ>`
+  `{U+WWWW.ZZZZ}`
 
 ## Usage
 
This page took 0.048308 seconds and 4 git commands to generate.