]> Lady’s Gitweb - LesML/commit
New block behaviour and repository layout
authorLady <redacted>
Tue, 31 Mar 2026 01:28:11 +0000 (21:28 -0400)
committerLady <redacted>
Tue, 31 Mar 2026 02:11:44 +0000 (22:11 -0400)
commit7ddcc7cae1ad36324aa1a3b3c2176bec9b9a8def3bfd67233188ecb50999a5e7
tree933235479739d0482bc796d2041c4e2de1bcb05c721483f08ce1b931bdbfdae8
parente4d0e426f252fa4b19f4b76dc55494c416082a8022b943dba380531977f96117
New block behaviour and repository layout

This commit makes extremely breaking changes to the block‐level
  semantics of the language, effectively rewriting those aspects of
  parsing from scratch.
At the same time, it restructures the repository and adds test cases.
Commits (and tags) prior to this commit have been redone with
  Les·M·L‐format commit messages, and the repository now uses Sha·256
  hashes rather than Sha·1.

One could consider this a “version 2” of the Les·M·L format, but it is
  the softest of reboots:
Most files will continue to produce more·or·less exactly the same
  result after only a replacement of `#!lesml´ with `#?lesml´.
(There are some negligible differences in whitespace handling.)

The major cases where this is ⹐not⹑ true are those of blockquotes,
  footers, and continuations.
The concepts of bracketed and quoted paragraphs have been removed and
  footers and blockquotes are now ordinary block types alongside
  sections and list items.
Blocks now have a “level”, indicated by the number of leading `⋮´
  characters, and blocks of higher level are nested inside preceding
  ones of lower level.
This makes the existing continuation behaviour more consistent and
  makes the language more flexible.
The character `⋮´ is used instead of `⋯´ because it is semantically
  more accurate and the latter can also make up horizontal rules.

Multiple block sigils can now be used together to create deeply nested
  block structures that an equal number of continuation symbols are
  used to continue.
For example, a leading `» • •´ introduces a list inside a list inside a
  blockquote, and `⋮ ⋮ •´ introduces a second list item in the nested
  list.

The higher‐level unordered list characters `◦▪⁃´ are supported only as
  the first block sigils after any continuation symbols.
They are simply a shorthand for `⋮ •´, `⋮ ⋮ •´, and `⋮ ⋮ ⋮ •´,
  respectively.
The ordered list characters have been replaced by a single `№´.

Preformatted text requires the same prefix on each line.
The prefix, which begins with any continuation characters or block
  sigils, can end in one of three ways :⁠—

№ With a pipe, a syntax name, and a dollar sign, such as `|sh$´.
The syntax name can consist only of Ascii lowercase letters, numbers,
  slashes, dots, and hyphen dashes and identifies the preformatted text
  as code in the corresponding language.
The semantics of syntax names are left undefined and up to profiles or
  applications to determine.

№ With a pipe and a dollar sign with nothing inbetween.
In this case, the preformatted text is code of an unspecified syntax.

№ With a pipe only.
In this case, the text is preformatted, but not code.

Footnote references now have the format `[^fn_id]´ and the
  corresponding footnotes `^¶fn_id´.
“Footnotes” which are never referenced in a document are now dropped,
  meaning that they can be used to fully remove text from the output
  (unlike most forms of commenting, which produce X·M·L comments).
The character `*´ was considered over `^´, but it has too many
  additional meanings in English text.

The character introducing footers has been changed from `]´ to `∎´.
The character introducing abstracts has been changed from `@´ to `∫´.
A new “tip” section has been introduced, with sigil `💡´.

Whitespace is no longer ignored before attribute specifications.
In general, more whitespace is preserved literally.

The hope at this point is that the Les·M·L format is fairly stable, and
  no major backwards‐incompatible changes will be made (excepting the
  minor backwards incompatibility which is inherent in adding new
  features to a syntax which already accepts all inputs with·out
  complaint).
A couple more features are anticipated, but “Version 1.0.0” will
  probably come soon.
47 files changed:
.gitignore [new file with mode: 0644]
README.lesml [new file with mode: 0644]
README.markdown [deleted file]
TESTING/REUSE.toml [new file with mode: 0644]
TESTING/ð\9f\93¤/at-id [new file with mode: 0644]
TESTING/ð\9f\93¤/attributes [new file with mode: 0644]
TESTING/ð\9f\93¤/comments [new file with mode: 0644]
TESTING/ð\9f\93¤/comments-continuations [new file with mode: 0644]
TESTING/ð\9f\93¤/empty-para [new file with mode: 0644]
TESTING/ð\9f\93¤/empty-para-id [new file with mode: 0644]
TESTING/ð\9f\93¤/footnotes [new file with mode: 0644]
TESTING/ð\9f\93¤/funky-tags [new file with mode: 0644]
TESTING/ð\9f\93¤/hgroup [new file with mode: 0644]
TESTING/ð\9f\93¤/hr [new file with mode: 0644]
TESTING/ð\9f\93¤/keys-and-values [new file with mode: 0644]
TESTING/ð\9f\93¤/langtags [new file with mode: 0644]
TESTING/ð\9f\93¤/links [new file with mode: 0644]
TESTING/ð\9f\93¤/lists [new file with mode: 0644]
TESTING/ð\9f\93¤/pre [new file with mode: 0644]
TESTING/ð\9f\93¤/profile-with-comment [new file with mode: 0644]
TESTING/ð\9f\93¤/quotes [new file with mode: 0644]
TESTING/ð\9f\93¤/sections [new file with mode: 0644]
TESTING/ð\9f\93¤/unicode-escapes [new file with mode: 0644]
TESTING/ð\9f\93¥/at-id [new file with mode: 0644]
TESTING/ð\9f\93¥/attributes [new file with mode: 0644]
TESTING/ð\9f\93¥/comments [new file with mode: 0644]
TESTING/ð\9f\93¥/comments-continuations [new file with mode: 0644]
TESTING/ð\9f\93¥/empty-para [new file with mode: 0644]
TESTING/ð\9f\93¥/empty-para-id [new file with mode: 0644]
TESTING/ð\9f\93¥/footnotes [new file with mode: 0644]
TESTING/ð\9f\93¥/funky-tags [new file with mode: 0644]
TESTING/ð\9f\93¥/hgroup [new file with mode: 0644]
TESTING/ð\9f\93¥/hr [new file with mode: 0644]
TESTING/ð\9f\93¥/keys-and-values [new file with mode: 0644]
TESTING/ð\9f\93¥/langtags [new file with mode: 0644]
TESTING/ð\9f\93¥/links [new file with mode: 0644]
TESTING/ð\9f\93¥/lists [new file with mode: 0644]
TESTING/ð\9f\93¥/pre [new file with mode: 0644]
TESTING/ð\9f\93¥/profile-with-comment [new file with mode: 0644]
TESTING/ð\9f\93¥/quotes [new file with mode: 0644]
TESTING/ð\9f\93¥/sections [new file with mode: 0644]
TESTING/ð\9f\93¥/unicode-escapes [new file with mode: 0644]
bin/lesml [new symlink]
magic [deleted file]
magic/lesml.magic [new file with mode: 0644]
sh/lesml.sh [new file with mode: 0755]
xslt/lesml.xslt [moved from parser.xslt with 59% similarity]
This page took 0.248351 seconds and 4 git commands to generate.