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 codepoint to use
curly braces rather than angle brackets, as the latter conflicted
with the angle brackets used in links.
Specifying by Unicode codepoint still isn¦t supported in links, but
the behaviour should be less surprising.
The old Unicode codepoint behaviour was probably broken also, in the
case where the codepoint 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.