Lady [Sat, 22 Mar 2025 01:45:20 +0000 (21:45 -0400)]
Enable nested tags of the same kind
Previously, the processing rules do not allow nesting an element inside
of itself: ‹ ☞︎nested ☞︎tags☜︎ like ☞︎this☜︎☜︎ › do not work as expected.
This design choice was to (at least) appropriately handle ‹ ☞︎⟨this☜︎
weird ⟨case☜︎⟩ ›, where each inline should stop at the first delimiter.
Correct processing starts by looking for end sigils first, not start
sigils, backtracking to the last start sigil which precedes it,
wrapping that text, and then reprocessing the entire set of nodes until
no more end sigils with matching start sigils are found.
This commit implements that behaviour, which is of course a fair bit
more complicated but should improve the results. It also changes
specifying characters by Unicode code·point to use curly braces rather
than angle brackets, as the latter conflicted with the angle brackets
used in links. Specifying by Unicode code·point still isn’t supported
in links, but the behaviour should be less surprising.
The old Unicode code·point behaviour was probably broken also, in the
case where the code·point was not the first character in a paragraph,
but it is fixed now.
Lady [Sat, 19 Oct 2024 17:11:12 +0000 (13:11 -0400)]
Refactor initial chunking to be line‐based
The old parsing mechanism operated primarily on large string chunks,
which were re‐parsed into lines potentially multiple times. This
refactor changes the parsing to use lines and ranges, which is a little
more verbose/complicated from an X·Path perspective (it requires a lot
of `generate-id()` comparisons) but hopefully, on the whole, better.
Lady [Sat, 19 Oct 2024 16:43:33 +0000 (12:43 -0400)]
Support language tag and profile
This commit provides initial support for language‐tagged Les·M·L
documents and additional document properties. Only one property is
supported: `profile`. Language tags are themselves internally treated
as properties whose key contains spaces; property keys cannot
ordinarily contain spaces so there is no concern for confusion.
Lady [Sun, 12 May 2024 07:03:30 +0000 (03:03 -0400)]
Switch symbols for subsection and subsubsection
`❦` is a stronger symbol than `✠`; its corresponding directional
fences `❧` and `☙` indicate section boundaries, while `⹐` and `⹑`
simply enclose emphasis.