Lady [Thu, 11 Jan 2024 01:20:19 +0000 (20:20 -0500)]
Allow separate find rules for includes
This hypothetically enables the situation where `SRCDIR` and
`INCLUDEDIR` are the same, and files are grouped into one or the other
by some other factor.
Lady [Thu, 11 Jan 2024 01:19:32 +0000 (20:19 -0500)]
Do not follow symbolic links with `find`
鉀╋笍馃摪聽涔︾ぞ expects that source files exist within `SRCDIR` and includes
exist within `INCLUDEDIR`. Following symlinks can break this
assumption. Other commands should follow symlinks by default, so there
shouldn鈥檛 be any need to resolve them this early in the process.
Lady [Thu, 11 Jan 2024 01:15:56 +0000 (20:15 -0500)]
Update readme documentation
- Provide more information regarding parsers, including X路M路L parsers.
- Update advice on allowed characters, to exclude all Ascii characters
not allowed in u路r路i鈥檚 as well as those known to cause potential
commandline problems.
- Improve the documentation regarding BUILDDIR and DESTDIR
Lady [Sat, 6 Jan 2024 03:59:15 +0000 (22:59 -0500)]
Add <涔︾ぞ:apply-attributes> transformation
The behaviour of `transforms/asset.xslt` is useful, but limited in that
the H路T路M路L elements it creates don鈥檛 have any attributes beyond
`@src`. `<涔︾ぞ:apply-attributes>` fixes this by allowing attributes to
be declared in a parent element which wraps the `<涔︾ぞ:link>`.
Lady [Sat, 6 Jan 2024 02:31:17 +0000 (21:31 -0500)]
Fix magic file generation in non鈥恉efault location
As it turns out, `file -C` always creates a file named `magic.mgc` in
the current working directory. Navigate to the build directory before
calling it instead of moving the file after.
Lady [Mon, 1 Jan 2024 22:18:49 +0000 (17:18 -0500)]
Provide a mechanism to override parser media types
If `@涔︾ぞ:supported-media-types` is present on the root element of a
parser, the normal media type detection is disabled and the value of
the attribute is used instead.
Lady [Mon, 1 Jan 2024 20:49:15 +0000 (15:49 -0500)]
Re路order remakes to (again) fix restarts
In cases where `$(BUILDDIR)/dependencies` exists but
`$(BUILDDIR)/.update-types` (initially) does not, it is important to
check for dependency updates *first*, prior to checking for parser
updates. This is because when parsers are updated, the dependency file
will be deleted, causing the dependency reload recipe to activate
immediately (prior to a restart) if it hasn鈥檛 already been checked.
Having correct behaviour depend on the ordering of these recipes isn鈥檛
ideal, but the alternative is checking whether
`$(BUILDDIR)/.update-types` was created *in the course of processing
the make路file* and disabling dependency creation until the next restart
if it had been. This sounds unbearably complex and difficult to phrase
in a readable manner.
Lady [Mon, 1 Jan 2024 19:00:12 +0000 (14:00 -0500)]
Improve asset transforms
This commit converts `audio/*`, `image/*` and `video/*` embeds to their
appropriate H路T路M路L element, enables inline `<html:style>`s, and
improves the handling of `text/css` embeds.
Lady [Mon, 1 Jan 2024 18:40:20 +0000 (13:40 -0500)]
Allow inserting nodes before and after result
This commit adds two new modes akin to `涔︾ぞ:metadata`: `涔︾ぞ:header`,
which supplies nodes to insert at the beginning of the `<html:body>`,
and `涔︾ぞ:footer`, which supplies nodes to insert at the end. Like
`涔︾ぞ:metadata`, these modes do not run if output wrapping is disabled.
Lady [Mon, 1 Jan 2024 16:49:24 +0000 (11:49 -0500)]
Automatically encapsulate metadata and preserve it
During the embedding phase, give top鈥恖evel elements and embeds
`@itemscope` properties as well as a `@itemtype` which indicates which
they are. Don鈥檛 remove microdata from the output, and make use of these
properties when processing to ensure only document metadata is actually
used.
Lady [Mon, 1 Jan 2024 16:19:37 +0000 (11:19 -0500)]
Allow creation of metadata without matching result
Each node in the result can only be matched once in any given mode, and
transforms need a mechanism for inserting elements without requiring a
match. This commit gives them a means of doing so by also matching
every `<xslt:include>` in the main transform. If a transform has a
`涔︾ぞ:id` top鈥恖evel element which is an i路r路i, then its include will
have a corresponding attribute, and transforms can (by convention)
match this include without fear of conflicts.
This commit also makes the expansion and result available as top鈥恖evel
variables in the `涔︾ぞ:` namespace, so that transforms can easily match
within them.
Lady [Mon, 1 Jan 2024 06:32:28 +0000 (01:32 -0500)]
Fix/improve restarts by just waiting a sec
The previous method of attempting to retroactively reduce the timestamp
of the make路file when compiling dependencies hasn鈥檛 seemed reliable in
practice and probably isn鈥檛 portable either. However, a simple
`sleep 1` after touching the make路file but before the first restart
seems to reliably ensure the second restart happens.