123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- <?xml version='1.0'?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:fo="http://www.w3.org/1999/XSL/Format"
- version='1.0'>
- <!-- ********************************************************************
- $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:template match="processing-instruction()">
- </xsl:template>
- <!-- ==================================================================== -->
- <xsl:template name="dbfo-attribute">
- <xsl:param name="pis" select="processing-instruction('dbfo')"/>
- <xsl:param name="attribute">filename</xsl:param>
- <xsl:call-template name="pi-attribute">
- <xsl:with-param name="pis" select="$pis"/>
- <xsl:with-param name="attribute" select="$attribute"/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template name="dbfo-filename">
- <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
- <xsl:call-template name="dbfo-attribute">
- <xsl:with-param name="pis" select="$pis"/>
- <xsl:with-param name="attribute">filename</xsl:with-param>
- </xsl:call-template>
- </xsl:template>
- <xsl:template name="dbfo-dir">
- <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
- <xsl:call-template name="dbfo-attribute">
- <xsl:with-param name="pis" select="$pis"/>
- <xsl:with-param name="attribute">dir</xsl:with-param>
- </xsl:call-template>
- </xsl:template>
- <!-- ==================================================================== -->
- <xsl:template name="process.cmdsynopsis.list">
- <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
- <xsl:param name="count" select="1"/>
- <xsl:choose>
- <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
- <xsl:otherwise>
- <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
- <dt>
- <a>
- <xsl:attribute name="href">
- <xsl:call-template name="object.id">
- <xsl:with-param name="object" select="$cmdsyn"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:choose>
- <xsl:when test="$cmdsyn/@xreflabel">
- <xsl:call-template name="xref.xreflabel">
- <xsl:with-param name="target" select="$cmdsyn"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="$cmdsyn" mode="xref-to">
- <xsl:with-param name="target" select="$cmdsyn"/>
- </xsl:apply-templates>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </dt>
- <xsl:call-template name="process.cmdsynopsis.list">
- <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
- <xsl:with-param name="count" select="$count+1"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="processing-instruction('dbcmdlist')">
- <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
- <xsl:if test="count($cmdsynopses)<1">
- <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
- </xsl:message>
- </xsl:if>
- <dl>
- <xsl:call-template name="process.cmdsynopsis.list">
- <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
- </xsl:call-template>
- </dl>
- </xsl:template>
- <!-- ==================================================================== -->
- <xsl:template name="process.funcsynopsis.list">
- <xsl:param name="funcsynopses"/><!-- empty node list by default -->
- <xsl:param name="count" select="1"/>
- <xsl:choose>
- <xsl:when test="$count>count($funcsynopses)"></xsl:when>
- <xsl:otherwise>
- <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
- <dt>
- <a>
- <xsl:attribute name="href">
- <xsl:call-template name="object.id">
- <xsl:with-param name="object" select="$cmdsyn"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:choose>
- <xsl:when test="$cmdsyn/@xreflabel">
- <xsl:call-template name="xref.xreflabel">
- <xsl:with-param name="target" select="$cmdsyn"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="$cmdsyn" mode="xref-to">
- <xsl:with-param name="target" select="$cmdsyn"/>
- </xsl:apply-templates>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </dt>
- <xsl:call-template name="process.funcsynopsis.list">
- <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
- <xsl:with-param name="count" select="$count+1"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="processing-instruction('dbfunclist')">
- <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
- <xsl:if test="count($funcsynopses)<1">
- <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
- </xsl:message>
- </xsl:if>
- <dl>
- <xsl:call-template name="process.funcsynopsis.list">
- <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
- </xsl:call-template>
- </dl>
- </xsl:template>
- <!-- ==================================================================== -->
- <!-- "need" processing instruction, a kind of soft page break -->
- <!-- A "need" is a request for space on a page. If the requested space
- is not available, the page breaks and the content that follows
- the need request appears on the next page. If the requested
- space is available, then the request is ignored. -->
- <xsl:template match="processing-instruction('dbfo-need')">
- <xsl:variable name="pi-height">
- <xsl:call-template name="dbfo-attribute">
- <xsl:with-param name="pis" select="."/>
- <xsl:with-param name="attribute" select="'height'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="height">
- <xsl:choose>
- <xsl:when test="$pi-height != ''">
- <xsl:value-of select="$pi-height"/>
- </xsl:when>
- <xsl:otherwise>0pt</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="pi-before">
- <xsl:call-template name="dbfo-attribute">
- <xsl:with-param name="pis" select="."/>
- <xsl:with-param name="attribute" select="'space-before'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="spacer">
- <fo:block-container width="100%" height="{$height}">
- <fo:block><fo:leader leader-length="0pt"/></fo:block>
- </fo:block-container>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$fop.extensions != 0">
- <!-- Doesn't work in fop -->
- </xsl:when>
- <xsl:when test="$pi-before != '' and
- not(following-sibling::listitem) and
- not(following-sibling::step)">
- <fo:block space-after="0pt" space-before="{$pi-before}">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:when test="following-sibling::para">
- <fo:block space-after="0pt"
- xsl:use-attribute-sets="normal.para.spacing">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:when test="following-sibling::table or
- following-sibling::figure or
- following-sibling::example or
- following-sibling::equation">
- <fo:block space-after="0pt"
- xsl:use-attribute-sets="formal.object.properties">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:when test="following-sibling::informaltable or
- following-sibling::informalfigure or
- following-sibling::informalexample or
- following-sibling::informalequation">
- <fo:block space-after="0pt"
- xsl:use-attribute-sets="informal.object.properties">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:when test="following-sibling::itemizedlist or
- following-sibling::orderedlist or
- following-sibling::variablelist or
- following-sibling::simplelist">
- <fo:block space-after="0pt"
- xsl:use-attribute-sets="informal.object.properties">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:when test="following-sibling::listitem or
- following-sibling::step">
- <fo:list-item space-after="0pt"
- xsl:use-attribute-sets="informal.object.properties">
- <fo:list-item-label/>
- <fo:list-item-body start-indent="0pt" end-indent="0pt">
- <xsl:copy-of select="$spacer"/>
- </fo:list-item-body>
- </fo:list-item>
- </xsl:when>
- <xsl:when test="following-sibling::sect1 or
- following-sibling::sect2 or
- following-sibling::sect3 or
- following-sibling::sect4 or
- following-sibling::sect5 or
- following-sibling::section">
- <fo:block space-after="0pt"
- xsl:use-attribute-sets="section.title.properties">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:when>
- <xsl:otherwise>
- <fo:block space-after="0pt" space-before="0em">
- <xsl:copy-of select="$spacer"/>
- </fo:block>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="$fop.extensions != 0">
- <!-- Doesn't work in fop -->
- </xsl:when>
- <xsl:when test="following-sibling::listitem or
- following-sibling::step">
- <fo:list-item space-before.precedence="force"
- space-before="-{$height}"
- space-after="0pt"
- space-after.precedence="force">
- <fo:list-item-label/>
- <fo:list-item-body start-indent="0pt" end-indent="0pt"/>
- </fo:list-item>
- </xsl:when>
- <xsl:otherwise>
- <fo:block space-before.precedence="force"
- space-before="-{$height}"
- space-after="0pt"
- space-after.precedence="force">
- </fo:block>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- ==================================================================== -->
- </xsl:stylesheet>
|