home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- version="1.0">
-
- <xsl:template name="chunk">
- <xsl:param name="node" select="."/>
- <!-- returns 1 if $node is a chunk -->
-
- <!-- ==================================================================== -->
- <!-- What's a chunk?
-
- The root element
- appendix
- article
- bibliography in article or book
- book
- chapter
- colophon
- glossary in article or book
- index in article or book
- part
- preface
- refentry
- reference
- sect{1,2,3,4,5} if position()>1 && depth < chunk.section.depth
- section if position()>1 && depth < chunk.section.depth
- set
- setindex
- -->
- <!-- ==================================================================== -->
-
- <!--
- <xsl:message>
- <xsl:text>chunk: </xsl:text>
- <xsl:value-of select="name($node)"/>
- <xsl:text>(</xsl:text>
- <xsl:value-of select="$node/@id"/>
- <xsl:text>)</xsl:text>
- <xsl:text> csd: </xsl:text>
- <xsl:value-of select="$chunk.section.depth"/>
- <xsl:text> cfs: </xsl:text>
- <xsl:value-of select="$chunk.first.sections"/>
- <xsl:text> ps: </xsl:text>
- <xsl:value-of select="count($node/parent::section)"/>
- <xsl:text> prs: </xsl:text>
- <xsl:value-of select="count($node/preceding-sibling::section)"/>
- </xsl:message>
- -->
-
- <xsl:choose>
- <xsl:when test="not($node/parent::*)">1</xsl:when>
-
- <xsl:when test="local-name($node) = 'sect1'
- and $chunk.section.depth >= 1
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::sect1) > 0)">
- <xsl:text>1</xsl:text>
- </xsl:when>
- <xsl:when test="local-name($node) = 'sect2'
- and $chunk.section.depth >= 2
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::sect2) > 0)">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$node/parent::*"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="local-name($node) = 'sect3'
- and $chunk.section.depth >= 3
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::sect3) > 0)">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$node/parent::*"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="local-name($node) = 'sect4'
- and $chunk.section.depth >= 4
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::sect4) > 0)">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$node/parent::*"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="local-name($node) = 'sect5'
- and $chunk.section.depth >= 5
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::sect5) > 0)">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$node/parent::*"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="local-name($node) = 'section'
- and $chunk.section.depth >= count($node/ancestor::section)+1
- and ($chunk.first.sections != 0
- or count($node/preceding-sibling::section) > 0)">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$node/parent::*"/>
- </xsl:call-template>
- </xsl:when>
-
- <xsl:when test="name($node)='preface'">1</xsl:when>
- <xsl:when test="name($node)='chapter'">1</xsl:when>
- <xsl:when test="name($node)='appendix'">1</xsl:when>
- <xsl:when test="name($node)='article'">1</xsl:when>
- <xsl:when test="name($node)='part'">1</xsl:when>
- <xsl:when test="name($node)='reference'">1</xsl:when>
- <xsl:when test="name($node)='refentry'">1</xsl:when>
- <xsl:when test="name($node)='index'
- and (name($node/parent::*) = 'article'
- or name($node/parent::*) = 'book')">1</xsl:when>
- <xsl:when test="name($node)='bibliography'
- and (name($node/parent::*) = 'article'
- or name($node/parent::*) = 'book')">1</xsl:when>
- <xsl:when test="name($node)='glossary'
- and (name($node/parent::*) = 'article'
- or name($node/parent::*) = 'book')">1</xsl:when>
- <xsl:when test="name($node)='colophon'">1</xsl:when>
- <xsl:when test="name($node)='book'">1</xsl:when>
- <xsl:when test="name($node)='set'">1</xsl:when>
- <xsl:when test="name($node)='setindex'">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template match="*" mode="chunk-filename">
- <xsl:variable name="fn">
- <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
- </xsl:variable>
-
- <xsl:if test="$fn != ''">
- <xsl:call-template name="dbhtml-dir"/>
- </xsl:if>
-
- <xsl:value-of select="$fn"/>
- <xsl:value-of select="$html.ext"/>
- </xsl:template>
-
- <xsl:template match="*" mode="recursive-chunk-filename">
- <xsl:param name="recursive" select="false()"/>
-
- <!-- returns the filename of a chunk -->
- <xsl:variable name="ischunk">
- <xsl:call-template name="chunk"/>
- </xsl:variable>
-
- <xsl:variable name="dbhtml-filename">
- <xsl:call-template name="dbhtml-filename"/>
- </xsl:variable>
-
- <xsl:variable name="filename">
- <xsl:choose>
- <xsl:when test="$dbhtml-filename != ''">
- <xsl:value-of select="$dbhtml-filename"/>
- </xsl:when>
- <!-- if this is the root element, use the root.filename -->
- <xsl:when test="not(parent::*) and $root.filename != ''">
- <xsl:value-of select="$root.filename"/>
- </xsl:when>
- <!-- if there's no dbhtml filename, and if we're to use IDs as -->
- <!-- filenames, then use the ID to generate the filename. -->
- <xsl:when test="@id and $use.id.as.filename != 0">
- <xsl:value-of select="@id"/>
- </xsl:when>
- <xsl:otherwise></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$ischunk='0'">
- <!-- if called on something that isn't a chunk, walk up... -->
- <xsl:choose>
- <xsl:when test="count(parent::*)>0">
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="$recursive"/>
- </xsl:apply-templates>
- </xsl:when>
- <!-- unless there is no up, in which case return "" -->
- <xsl:otherwise></xsl:otherwise>
- </xsl:choose>
- </xsl:when>
-
- <xsl:when test="not($recursive) and $filename != ''">
- <!-- if this chunk has an explicit name, use it -->
- <xsl:value-of select="$filename"/>
- </xsl:when>
-
- <xsl:when test="name(.)='set'">
- <xsl:value-of select="$root.filename"/>
- </xsl:when>
-
- <xsl:when test="name(.)='book'">
- <xsl:text>bk</xsl:text>
- <xsl:number level="any" format="01"/>
- </xsl:when>
-
- <xsl:when test="name(.)='article'">
- <xsl:if test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:if>
-
- <xsl:text>ar</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='preface'">
- <xsl:if test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:if>
-
- <xsl:text>pr</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='chapter'">
- <xsl:if test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:if>
-
- <xsl:text>ch</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='appendix'">
- <xsl:if test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:if>
-
- <xsl:text>ap</xsl:text>
- <xsl:number level="any" format="a" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='part'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>pt</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='reference'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>rn</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='refentry'">
- <xsl:choose>
- <xsl:when test="parent::reference">
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>re</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='colophon'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>co</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="local-name(.) = 'sect1'
- or local-name(.) = 'sect2'
- or local-name(.) = 'sect3'
- or local-name(.) = 'sect4'
- or local-name(.) = 'sect5'
- or local-name(.) = 'section'">
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- <xsl:text>s</xsl:text>
- <xsl:number format="01"/>
- </xsl:when>
-
- <xsl:when test="name(.)='sect1' or name(.)='section'">
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- <xsl:text>s</xsl:text>
- <xsl:number level="any" format="01" from="preface|chapter|appendix"/>
- </xsl:when>
-
- <xsl:when test="name(.)='bibliography'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>bi</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='glossary'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>go</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='index'">
- <xsl:choose>
- <xsl:when test="/set">
- <!-- in a set, make sure we inherit the right book info... -->
- <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">
- <xsl:with-param name="recursive" select="true()"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:text>ix</xsl:text>
- <xsl:number level="any" format="01" from="book"/>
- </xsl:when>
-
- <xsl:when test="name(.)='setindex'">
- <xsl:text>si</xsl:text>
- <xsl:number level="any" format="01" from="set"/>
- </xsl:when>
-
- <xsl:otherwise>
- <xsl:text>chunk-filename-error-</xsl:text>
- <xsl:value-of select="name(.)"/>
- <xsl:number level="any" format="01" from="set"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="href.target.uri">
- <xsl:param name="object" select="."/>
- <xsl:variable name="ischunk">
- <xsl:call-template name="chunk">
- <xsl:with-param name="node" select="$object"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:apply-templates mode="chunk-filename" select="$object"/>
-
- <xsl:if test="$ischunk='0'">
- <xsl:text>#</xsl:text>
- <xsl:call-template name="object.id">
- <xsl:with-param name="object" select="$object"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="href.target">
- <xsl:param name="context" select="."/>
- <xsl:param name="object" select="."/>
-
- <xsl:variable name="href.to.uri">
- <xsl:call-template name="href.target.uri">
- <xsl:with-param name="object" select="$object"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="href.from.uri">
- <xsl:call-template name="href.target.uri">
- <xsl:with-param name="object" select="$context"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="href.to">
- <xsl:call-template name="trim.common.uri.paths">
- <xsl:with-param name="uriA" select="$href.to.uri"/>
- <xsl:with-param name="uriB" select="$href.from.uri"/>
- <xsl:with-param name="return" select="'A'"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="href.from">
- <xsl:call-template name="trim.common.uri.paths">
- <xsl:with-param name="uriA" select="$href.to.uri"/>
- <xsl:with-param name="uriB" select="$href.from.uri"/>
- <xsl:with-param name="return" select="'B'"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="depth">
- <xsl:call-template name="count.uri.path.depth">
- <xsl:with-param name="filename" select="$href.from"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="href">
- <xsl:call-template name="copy-string">
- <xsl:with-param name="string" select="'../'"/>
- <xsl:with-param name="count" select="$depth"/>
- </xsl:call-template>
- <xsl:value-of select="$href.to"/>
- </xsl:variable>
-
- <!--
- <xsl:message>
- <xsl:text>In </xsl:text>
- <xsl:value-of select="name(.)"/>
- <xsl:text> (</xsl:text>
- <xsl:value-of select="$href.from"/>
- <xsl:text>,</xsl:text>
- <xsl:value-of select="$depth"/>
- <xsl:text>) </xsl:text>
- <xsl:value-of select="name($object)"/>
- <xsl:text> href=</xsl:text>
- <xsl:value-of select="$href"/>
- </xsl:message>
- -->
-
- <xsl:value-of select="$href"/>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="html.head">
- <xsl:param name="prev" select="/foo"/>
- <xsl:param name="next" select="/foo"/>
- <xsl:variable name="this" select="."/>
- <xsl:variable name="home" select="/*[1]"/>
- <xsl:variable name="up" select="parent::*"/>
-
- <head>
- <xsl:call-template name="head.content"/>
- <xsl:call-template name="user.head.content"/>
-
- <xsl:if test="$home">
- <link rel="home">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$home"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="$home"
- mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:if>
-
- <xsl:if test="$up">
- <link rel="up">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$up"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:if>
-
- <xsl:if test="$prev">
- <link rel="previous">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$prev"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:if>
-
- <xsl:if test="$next">
- <link rel="next">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$next"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:if>
-
- <xsl:if test="$html.extra.head.links != 0">
- <xsl:for-each select="//part
- |//reference
- |//preface
- |//chapter
- |//article
- |//refentry
- |//appendix[not(parent::article)]|appendix
- |//glossary[not(parent::article)]|glossary
- |//index[not(parent::article)]|index">
- <link rel="{local-name(.)}">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="context" select="$this"/>
- <xsl:with-param name="object" select="."/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:for-each>
-
- <xsl:for-each select="section|sect1|refsection|refsect1">
- <link>
- <xsl:attribute name="rel">
- <xsl:choose>
- <xsl:when test="local-name($this) = 'section'
- or local-name($this) = 'refsection'">
- <xsl:value-of select="'subsection'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'section'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="context" select="$this"/>
- <xsl:with-param name="object" select="."/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:for-each>
-
- <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3">
- <link rel="subsection">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="context" select="$this"/>
- <xsl:with-param name="object" select="."/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:attribute name="title">
- <xsl:apply-templates select="." mode="object.title.markup.textonly"/>
- </xsl:attribute>
- </link>
- </xsl:for-each>
- </xsl:if>
- </head>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="header.navigation">
- <xsl:param name="prev" select="/foo"/>
- <xsl:param name="next" select="/foo"/>
- <xsl:param name="nav.context"/>
-
- <xsl:variable name="home" select="/*[1]"/>
- <xsl:variable name="up" select="parent::*"/>
-
- <xsl:variable name="row1" select="$navig.showtitles != 0"/>
- <xsl:variable name="row2" select="count($prev) > 0
- or (count($up) > 0
- and $up != $home
- and $navig.showtitles != 0)
- or count($next) > 0"/>
-
- <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
- <div class="navheader">
- <xsl:if test="$row1 or $row2">
- <table width="100%" summary="Navigation header">
- <xsl:if test="$row1">
- <tr>
- <th colspan="3" align="center">
- <xsl:apply-templates select="." mode="object.title.markup"/>
- </th>
- </tr>
- </xsl:if>
-
- <xsl:if test="$row2">
- <tr>
- <td width="20%" align="left">
- <xsl:if test="count($prev)>0">
- <a accesskey="p">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$prev"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'prev'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <th width="60%" align="center">
- <xsl:choose>
- <xsl:when test="count($up) > 0
- and $up != $home
- and $navig.showtitles != 0">
- <xsl:apply-templates select="$up" mode="object.title.markup"/>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </th>
- <td width="20%" align="right">
- <xsl:text> </xsl:text>
- <xsl:if test="count($next)>0">
- <a accesskey="n">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$next"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'next'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- </td>
- </tr>
- </xsl:if>
- </table>
- </xsl:if>
- <xsl:if test="$header.rule != 0">
- <hr/>
- </xsl:if>
- </div>
- </xsl:if>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="footer.navigation">
- <xsl:param name="prev" select="/foo"/>
- <xsl:param name="next" select="/foo"/>
- <xsl:param name="nav.context"/>
-
- <xsl:variable name="home" select="/*[1]"/>
- <xsl:variable name="up" select="parent::*"/>
-
- <xsl:variable name="row1" select="count($prev) > 0
- or count($up) > 0
- or count($next) > 0"/>
-
- <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
- or ($home != . or $nav.context = 'toc')
- or ($chunk.tocs.and.lots != 0
- and $nav.context != 'toc')
- or ($next and $navig.showtitles != 0)"/>
-
- <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
- <div class="navfooter">
- <xsl:if test="$footer.rule != 0">
- <hr/>
- </xsl:if>
-
- <xsl:if test="$row1 or $row2">
- <table width="100%" summary="Navigation footer">
- <xsl:if test="$row1">
- <tr>
- <td width="40%" align="left">
- <xsl:if test="count($prev)>0">
- <a accesskey="p">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$prev"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'prev'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <td width="20%" align="center">
- <xsl:choose>
- <xsl:when test="count($up)>0">
- <a accesskey="u">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$up"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'up'"/>
- </xsl:call-template>
- </a>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </td>
- <td width="40%" align="right">
- <xsl:text> </xsl:text>
- <xsl:if test="count($next)>0">
- <a accesskey="n">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$next"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'next'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- </td>
- </tr>
- </xsl:if>
-
- <xsl:if test="$row2">
- <tr>
- <td width="40%" align="left" valign="top">
- <xsl:if test="$navig.showtitles != 0">
- <xsl:apply-templates select="$prev" mode="object.title.markup"/>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <td width="20%" align="center">
- <xsl:choose>
- <xsl:when test="$home != . or $nav.context = 'toc'">
- <a accesskey="h">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$home"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'home'"/>
- </xsl:call-template>
- </a>
- <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
- <xsl:text> | </xsl:text>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
-
- <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
- <a accesskey="t">
- <xsl:attribute name="href">
- <xsl:apply-templates select="/*[1]"
- mode="recursive-chunk-filename"/>
- <xsl:text>-toc</xsl:text>
- <xsl:value-of select="$html.ext"/>
- </xsl:attribute>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key" select="'nav-toc'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- </td>
- <td width="40%" align="right" valign="top">
- <xsl:text> </xsl:text>
- <xsl:if test="$navig.showtitles != 0">
- <xsl:apply-templates select="$next" mode="object.title.markup"/>
- </xsl:if>
- </td>
- </tr>
- </xsl:if>
- </table>
- </xsl:if>
- </div>
- </xsl:if>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="navig.content">
- <xsl:param name="direction" select="next"/>
- <xsl:variable name="navtext">
- <xsl:choose>
- <xsl:when test="$direction = 'prev'">
- <xsl:call-template name="gentext.nav.prev"/>
- </xsl:when>
- <xsl:when test="$direction = 'next'">
- <xsl:call-template name="gentext.nav.next"/>
- </xsl:when>
- <xsl:when test="$direction = 'up'">
- <xsl:call-template name="gentext.nav.up"/>
- </xsl:when>
- <xsl:when test="$direction = 'home'">
- <xsl:call-template name="gentext.nav.home"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>xxx</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$navig.graphics != 0">
- <img>
- <xsl:attribute name="src">
- <xsl:value-of select="$navig.graphics.path"/>
- <xsl:value-of select="$direction"/>
- <xsl:value-of select="$navig.graphics.extension"/>
- </xsl:attribute>
- <xsl:attribute name="alt">
- <xsl:value-of select="$navtext"/>
- </xsl:attribute>
- </img>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$navtext"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template match="processing-instruction('dbhtml')">
- <!-- nop -->
- </xsl:template>
-
- <!-- ==================================================================== -->
-
- <xsl:template name="chunk-element-content">
- <xsl:param name="prev"/>
- <xsl:param name="next"/>
- <xsl:param name="nav.context"/>
- <xsl:param name="content"/>
-
- <html>
- <xsl:call-template name="html.head">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- </xsl:call-template>
-
- <body>
- <xsl:call-template name="body.attributes"/>
- <xsl:call-template name="user.header.navigation"/>
-
- <xsl:call-template name="header.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
-
- <xsl:call-template name="user.header.content"/>
-
- <xsl:choose>
- <xsl:when test="$content">
- <xsl:copy-of select="$content"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-imports/>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:call-template name="user.footer.content"/>
-
- <xsl:call-template name="footer.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
-
- <xsl:call-template name="user.footer.navigation"/>
- </body>
- </html>
- </xsl:template>
-
- </xsl:stylesheet>
-