summaryrefslogtreecommitdiff
path: root/xsl/section.title.xsl
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2018-12-14 16:40:54 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2018-12-14 16:40:54 -0600
commit304c8ff0bc1eb43934ad794dbde589e11a2f3902 (patch)
tree356b7b99d6630efe3801289a519771fff3affeb3 /xsl/section.title.xsl
parenteb188b3e7208d57931873d2ca61620ec92e81138 (diff)
downloaddocs-304c8ff0bc1eb43934ad794dbde589e11a2f3902.tar.gz
docs-304c8ff0bc1eb43934ad794dbde589e11a2f3902.tar.bz2
docs-304c8ff0bc1eb43934ad794dbde589e11a2f3902.tar.xz
docs-304c8ff0bc1eb43934ad794dbde589e11a2f3902.zip
XSL: add permalinks to every section header
Diffstat (limited to 'xsl/section.title.xsl')
-rw-r--r--xsl/section.title.xsl55
1 files changed, 55 insertions, 0 deletions
diff --git a/xsl/section.title.xsl b/xsl/section.title.xsl
new file mode 100644
index 0000000..8edfb6e
--- /dev/null
+++ b/xsl/section.title.xsl
@@ -0,0 +1,55 @@
+<!-- SPDX-Identifier: CC-BY-NC-SA-3.0 -->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:d="http://docbook.org/ns/docbook"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:template name="section.title">
+ <xsl:variable name="section"
+ select="(ancestor::section |
+ ancestor::simplesect|
+ ancestor::sect1|
+ ancestor::sect2|
+ ancestor::sect3|
+ ancestor::sect4|
+ ancestor::sect5)[last()]"/>
+
+ <xsl:variable name="renderas">
+ <xsl:choose>
+ <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when>
+ <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when>
+ <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="level">
+ <xsl:choose>
+ <xsl:when test="$renderas != ''">
+ <xsl:value-of select="$renderas"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="level" select="$level"/>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="$section" mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ <xsl:if test="$level = 1">
+ <xsl:call-template name="permalink">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+</xsl:stylesheet>