X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/1ba6bb315cf3e1c7120acff6c34149acf65f0120..e6e6518e567f7a10533af75c43a479f6ca0b9a5c:/README.markdown diff --git a/README.markdown b/README.markdown index 4671064..be400b9 100644 --- a/README.markdown +++ b/README.markdown @@ -575,7 +575,8 @@ The file is retransformed each time, with the value of the `DESTINATION` global ## Embedding Documents can be embedded in other documents using a `<书社:link>` - element with `@xlink:show="embed"`. + element with `@xlink:show="embed"` and an `@xlink:actuate` which is + absent or `"none"`. The `@xlink:href`s of these elements should have the format `about:shushe?source=`, where `` provides the path to the file within `SRCDIR`. @@ -583,6 +584,8 @@ Includes, which do not generate outputs of their own but may still be freely embedded, instead use the format `about:shushe?include=`, where `` provides the path within `INCLUDEDIR`. +If `` indicates a directory and ends with a slash (`/`), + everything within that directory will be embedded. Embeds are replaced with the parsed contents of a file, unless the file is an asset, in which case an `` element is produced @@ -622,6 +625,40 @@ These include :⁠— These attributes are used to scope any nested `` elements with `@itemprop` attributes to their containing documents. +## Soft Dependencies + +When a file depends only on the metadata of another file, and not its + contents, it can be added as a soft dependency rather than an embed. +Soft dependencies are indicated using a `<书社:link>` element with an + `@xlink:show` of `"other"`, `"none"`, or absent, and an + `@xlink:actuate` which is absent or `"none"`. +A change to a soft dependency requires a file to be rebuilt, but no + embedding occurs automatically. +Because there is no automatic embedding, soft dependencies are allowed + to be recursive. + +The `@xlink:href`s of soft dependency `<书社:link>`s are processed in + exactly the same fashion as embeds, described above. + +If the value of `@xlink:show` is `"other"`, the soft dependency is + transitive. +Any dependencies of the indicated file which have a `@name` which + matches that of the referencing `<书社:link>` element will also be + treated as soft dependencies. +If no `@name` is given, it is treated as the empty string. + +When a document is embedded directly, all of its soft dependencies are + also treated as soft dependencies of the embedding object. +However, a document is embedded in a transitive soft dependency, the + embed is treated exactly as tho it were itself a transitive soft + dependency. +That means it must have a matching `@name` to be included, and + like·wise for any embeds or soft dependencies it contains. + +If the value of `@xlink:show` is `"none"` or absent, the soft + dependency is not transitive and its own dependencies are not + checked. + ## Transforms Transforms are used to convert X·M·L files into their final output,