]> Lady’s Gitweb - LesML/log
LesML
12 days agoProperly escape all comments
Lady [Sun, 27 Apr 2025 22:00:37 +0000 (18:00 -0400)]
Properly escape all comments

13 days agoDrop langtags on offset text but support on paras
Lady [Sun, 27 Apr 2025 05:21:13 +0000 (01:21 -0400)]
Drop langtags on offset text but support on paras

Now that language attributes can be arbitrarily added to any inline,
a special syntax for them doesn’t make much sense. However, that syntax
would be useful on block‐level elements.

There isn’t a real technical reason for the explicit `$` end of the
language tag, since the following white·space could have been used to
end it also, but it makes the syntax a bit more obvious, matches the
existing format with the shebangs, and is less likely to conflict with
id syntaxes (which might include `@` but probably won’t also end in a
`$`).

You can still make id’s like `@es$` if you need by explicitly
language‐tagging: `¶@es$@en$`.

This commit also allows block sigils to not be followed by a space if
they are immediately followed by a pilcrow.

13 days agoSupport attributes
Lady [Sun, 27 Apr 2025 04:31:53 +0000 (00:31 -0400)]
Support attributes

This required a reworking of the link parsing code to enable it to also
be used for attribute parsing (more‐or‐less), and maybe also fixed a
bug where, if there was an end token with no start token, no further
end tokens would be processed (even later ones they did have start
tokens).

13 days agoSupport inline comments
Lady [Sun, 27 Apr 2025 04:26:14 +0000 (00:26 -0400)]
Support inline comments

Comments work different from other inlines and have their own
processing rules. “Empty” comments are useful primarily to break up
spans of text into discrete text nodes.

2 weeks agoAdd support for proper name marks
Lady [Sat, 26 Apr 2025 03:32:24 +0000 (23:32 -0400)]
Add support for proper name marks

2 weeks agoWrap results in a div
Lady [Sat, 26 Apr 2025 03:24:11 +0000 (23:24 -0400)]
Wrap results in a div

Even in the case where there is only one document, there may be
additional document comments which should be grouped alongside it and
not intermixed with any comments in the surrounding area. For the case
when there is only one document and nothing else, not even a comment,
it is probably better to still wrap the output for consistency.

2 weeks agoDrop empty shebang documents
Lady [Sat, 26 Apr 2025 03:16:03 +0000 (23:16 -0400)]
Drop empty shebang documents

Previously, a shebang forced a document to be output, even if it was
empty. However, this conflicts with the ability to add document
comments at the beginning of a document where the shebang is serving as
a magic number (for example, copyright comments): This would create two
documents, one for the shebang and a second one for the final comment.
Now, empty documents will be dropped regardless of whether they use the
shebang or comment syntax.

2 weeks agoUse set functions rather than generate-id()
Lady [Sat, 26 Apr 2025 02:53:07 +0000 (22:53 -0400)]
Use set functions rather than generate-id()

These should be faster, and are generally cleaner and more readable
besides.

7 weeks agoDon’t use html: prefix 0.4.0
Lady [Sat, 22 Mar 2025 02:41:57 +0000 (22:41 -0400)]
Don’t use html: prefix

This is unnecessary and makes the resulting files a lot larger.

7 weeks agoAdjust order of precedence for inlines
Lady [Sat, 22 Mar 2025 02:32:18 +0000 (22:32 -0400)]
Adjust order of precedence for inlines

I think this ordering makes a little bit more sense.

7 weeks agoEnable nested tags of the same kind
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.

4 months agoDon’t use literal result elements 0.3.1
Lady [Sat, 14 Dec 2024 02:32:59 +0000 (21:32 -0500)]
Don’t use literal result elements

It’s simpler and cleaner to always just create elements with
`<xslt:element>`, as these never inherit name·spaces from their
surrounding context.

4 months agoSupport preformatted text
Lady [Sat, 14 Dec 2024 02:09:02 +0000 (21:09 -0500)]
Support preformatted text

6 months agoBetter handle id‐less pilcrows 0.3.0
Lady [Sat, 19 Oct 2024 22:57:17 +0000 (18:57 -0400)]
Better handle id‐less pilcrows

A pilcrow is useful to “force” a paragraph when it would otherwise
start with a sigil. These pilcrows may not have id’s; this should be
supported.

6 months agoAllow block sigils followed by nothing
Lady [Sat, 19 Oct 2024 19:59:57 +0000 (15:59 -0400)]
Allow block sigils followed by nothing

6 months agoSupport “comment” paragraphs
Lady [Sat, 19 Oct 2024 19:50:48 +0000 (15:50 -0400)]
Support “comment” paragraphs

6 months agoPreserve document and record‐jar comments
Lady [Sat, 19 Oct 2024 19:37:08 +0000 (15:37 -0400)]
Preserve document and record‐jar comments

6 months agoSupport multiple documents per file
Lady [Sat, 19 Oct 2024 19:30:35 +0000 (15:30 -0400)]
Support multiple documents per file

Documents may begin with either `#!lesml` or `##`.

6 months agoRefactor initial chunking to be line‐based
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.

6 months agoSupport language tag and profile 0.2.2
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.

8 months agoIncrease the number of section‐break characters 0.2.1
Lady [Wed, 14 Aug 2024 22:21:48 +0000 (18:21 -0400)]
Increase the number of section‐break characters

8 months agoSwitch symbols for subsection and subsubsection 0.2.0
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.

8 months agoUse square instead of triangular bullet for level 3
Lady [Sun, 12 May 2024 07:01:42 +0000 (03:01 -0400)]
Use square instead of triangular bullet for level 3

This matches default H·T·M·L bulleting and avoids potential semantic
connotations that the triangle bullet may seem to have.

8 months agoInitial implementation 0.1.0
Lady [Sun, 12 May 2024 06:39:16 +0000 (02:39 -0400)]
Initial implementation

This page took 0.128356 seconds and 4 git commands to generate.