X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/fe1f9e5474fa7f3a6b42e384d92b466b2dcda952..d64d93fe12371f87cc42d72e7e874115b28fb252:/README.markdown diff --git a/README.markdown b/README.markdown index 81279a4..6b4f06e 100644 --- a/README.markdown +++ b/README.markdown @@ -102,6 +102,7 @@ In every case, you may supply your own implementation by overriding the - `awk` - `cat` +- `cksum` - `cp` - `date` - `echo` @@ -175,9 +176,10 @@ The following additional variables can be used to control the behaviour - **`FINDRULES`:** Rules to use with `find` when searching for source files. - The default ignores files that start with a period or hyphen‐minus - and those which contain a hash, buck, percent, asterisk, colon, - semi, eroteme, bracket, backslash, or pipe. + The default ignores files that start with a period or hyphen‐minus, + those which end with a cloparen, and those which contain a hash, + buck, percent, asterisk, colon, semi, eroteme, bracket, backslash, + or pipe. - **`EXTRAFINDRULES`:** The value of this variable is appended to `FINDRULES` by default, to @@ -212,6 +214,14 @@ The following additional variables can be used to control the behaviour A white·space‐separated list of media types to consider X·M·L (default: `application/xml text/xml`). +- **`THISREV`:** + The current version of ⛩️📰 书社 (default: derived from the current + git tag/branch/commit). + +- **`SRCREV`:** + The current version of the source files (default: derived from the + current git tag/branch/commit). + - **`VERBOSE`:** If this variable has a value, every recipe instruction will be printed when it runs (default: empty). @@ -244,9 +254,12 @@ Source files whose media type does not have an associated X·S·L·T contain Ascii white·space, colons (`:`), semis (`;`), pipes (`|`), bucks (`$`), percents (`%`), hashes (`#`), asterisks (`*`), brackets (`[` or `]`), erotemes (`?`), backslashes (`\`), or control - characters, and must not begin with a hyphen‐minus (`-`).** + characters, must not begin with a hyphen‐minus (`-`), and must not + end with a cloparen (`)`).** The former characters have the potential to conflict with make syntax, - and a leading hyphen‐minus is confusable for a command‐line argument. + a leading hyphen‐minus is confusable for a command‐line argument, and + a trailing cloparen [activates a bug in G·N·U Make + 3.81](https://stackoverflow.com/questions/17148468/capturing-filenames-including-parentheses-with-gnu-makes-wildcard-function#comment24825307_17148894). ## Parsers @@ -256,16 +269,15 @@ Parsers are used to convert plaintext files into X·M·L trees, as well ⛩️📰 书社 comes with some parsers; namely :⁠— - **`parsers/plain.xslt`:** - Wraps `text/plain` contents in a `` element. + Wraps `text/plain` contents in a `` element. - **`parsers/record-jar.xslt`:** - Converts `text/record-jar` contents into a - `` of `` elements (one for - each record). + Converts `text/record-jar` contents into a `` of + `` elements (one for each record). - **`parsers/tsv.xslt`:** - Converts `text/tab-separated-values` contents into an - `` element. + Converts `text/tab-separated-values` contents into an `` + element. New ⛩️📰 书社 parsers which target plaintext formats should have an `` element with no `@name` or `@mode` and whose @@ -331,6 +343,26 @@ It is **strongly recommended** that auxillary templates in parsers be namespaced (by `@name` or `@mode`) whenever possible, to avoid conflicts between parsers. +### Attributes added during parsing + +⛩️📰 书社 will add a few attributes to the output of the parsing step, + namely :⁠— + +- A `@书社:cksum` attribute on toplevel result elements, giving the + `cksum` checksum of the corresponding source file. + +- For the elements which result from parsing plaintext `` + elements :⁠— + + - A `@书社:parsed-by` attribute, giving a space‐separated list of + parsers which parsed the node. + (Generally, this will be a list of one, but it is possible for the + result of a parse to be another plaintext node, which may be + parsed by a different parser.) + + - A `@书社:media-type` attribute, giving the identified media type of + the plaintext node. + ## Embedding Documents can be embedded in other documents using a `<书社:link>` @@ -416,16 +448,17 @@ The following params are made available globally in parsers and - **`BUILDTIME`:** The current time. +- **`CKSUM`:** + The checksum of the source file (⅌ `cksum`). + - **`SRCREV`:** - The tag or hash of the current commit in the working directory (if - `GIT` is defined and `./.git` exists). + The value of the `SRCREV` variable (if present). - **`SRCTIME`:** The time at which the source file was last modified. -- **`VERSION`:** - The tag or hash of the current commit in `THISDIR` (if `GIT` is - defined and `$(THISDIR)/.git` exists). +- **`THISREV`:** + The value of the `THISREV` variable (if present). The following params are only available in transforms :⁠—