]> Lady’s Gitweb - Shushe/commitdiff
Allow inserting nodes before and after result
authorLady <redacted>
Mon, 1 Jan 2024 18:40:20 +0000 (13:40 -0500)
committerLady <redacted>
Tue, 2 Jan 2024 18:26:52 +0000 (13:26 -0500)
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.

README.markdown
lib/catalog2transform.xslt

index 681e8c4acb2940d25bbf528cf62b013c5fe093ca..893ac2c47230e55c4e2b59e93f31553dc25d5145 100644 (file)
@@ -319,6 +319,14 @@ After performing the initial transform, ⛩️📰 书社 will match the root
   node of the result in the following modes to fill in areas of the
   wrapper :⁠—
 
+- **`书社:header`:**
+  The result of matching in this mode is prepended into the
+    `<html:body>` of the output (before the transformation result).
+
+- **`书社:footer`:**
+  The result of matching in this mode is appended into the
+    `<html:body>` of the output (after the transformation result).
+
 - **`书社:metadata`:**
   The result of matching in this mode is inserted into the
     `<html:head>` of the output.
index 6044a136901c64b2d7775429fbbcb18a4052fb78..2a3bc711f64b047fefbeb0f15bfdda0d6278af46 100644 (file)
@@ -106,6 +106,8 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                        <xslt:apply-templates select="@*|node()" mode="书社:expand"/>
                                </xslt:copy>
                        </xslt:template>
+                       <xslt:template match="text()" mode="书社:header"/>
+                       <xslt:template match="text()" mode="书社:footer"/>
                        <xslt:template match="text()" mode="书社:metadata"/>
                        <xslt:template match="/" mode="书社:wrap">
                                <xslt:variable name="metadata">
@@ -128,7 +130,11 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
                                                </xslt:if>
                                        </html:head>
                                        <html:body>
+                                               <xslt:apply-templates select="document('')/xslt:transform/xslt:include" mode="书社:header"/>
+                                               <xslt:apply-templates select="." mode="书社:header"/>
                                                <xslt:copy-of select="*[not(self::html:html or self::html:body)]|html:html/*[not(self::html:head or self::html:body)]|html:html/html:body/*|html:body/*"/>
+                                               <xslt:apply-templates select="." mode="书社:footer"/>
+                                               <xslt:apply-templates select="document('')/xslt:transform/xslt:include" mode="书社:footer"/>
                                        </html:body>
                                </html:html>
                        </xslt:template>
This page took 0.030023 seconds and 4 git commands to generate.