diff options
Diffstat (limited to 'kdoctools/docbook/xsl/html/chunkfast.xsl')
-rw-r--r-- | kdoctools/docbook/xsl/html/chunkfast.xsl | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/kdoctools/docbook/xsl/html/chunkfast.xsl b/kdoctools/docbook/xsl/html/chunkfast.xsl new file mode 100644 index 000000000..bd49ac843 --- /dev/null +++ b/kdoctools/docbook/xsl/html/chunkfast.xsl @@ -0,0 +1,71 @@ +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + version="1.0" + exclude-result-prefixes="exsl"> + +<!-- ******************************************************************** + $Id$ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://nwalsh.com/docbook/xsl/ for copyright + and other information. + + ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="chunk.xsl"/> +<xsl:param name="chunk.fast" select="1"/> + +<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//div"/> + +<!-- ==================================================================== --> + +<xsl:template name="process-chunk-element"> + <xsl:choose> + <xsl:when test="$chunk.fast != 0 and function-available('exsl:node-set')"> + <xsl:variable name="genid" select="generate-id()"/> + + <xsl:variable name="div" select="$chunks[@id=$genid]"/> + + <xsl:variable name="prevdiv" + select="($div/preceding-sibling::div|$div/preceding::div|$div/parent::div)[last()]"/> + <xsl:variable name="prev" select="key('genid', $prevdiv/@id)"/> + + <xsl:variable name="nextdiv" + select="($div/following-sibling::div|$div/following::div|$div/div)[1]"/> + <xsl:variable name="next" select="key('genid', $nextdiv/@id)"/> + + <xsl:choose> + <xsl:when test="$onechunk != 0 and parent::*"> + <xsl:apply-imports/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="process-chunk"> + <xsl:with-param name="prev" select="$prev"/> + <xsl:with-param name="next" select="$next"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="$onechunk != 0 and not(parent::*)"> + <xsl:call-template name="chunk-all-sections"/> + </xsl:when> + <xsl:when test="$onechunk != 0"> + <xsl:apply-imports/> + </xsl:when> + <xsl:when test="$chunk.first.sections = 0"> + <xsl:call-template name="chunk-first-section-with-parent"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="chunk-all-sections"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> |