|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
-->
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
|
|
Packit |
e4b6da |
xmlns="http://docbook2x.sourceforge.net/xmlns/Texi-XML"
|
|
Packit |
e4b6da |
exclude-result-prefixes="doc"
|
|
Packit |
e4b6da |
version='1.0'
|
|
Packit |
e4b6da |
xml:lang="en">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
$Id: texinode-base.xsl,v 1.25 2004/08/22 22:46:07 stevecheng Exp $
|
|
Packit |
e4b6da |
********************************************************************
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
(C) 2000-2004 Steve Cheng <stevecheng@users.sourceforge.net>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
This file is part of the docbook2X XSLT stylesheets for
|
|
Packit |
e4b6da |
converting DocBook to Texinfo.
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
See ../../COPYING for the copyright status of this software.
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
******************************************************************** -->
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<doc:reference xmlns="">
|
|
Packit |
e4b6da |
<title>Low-level Texinfo node handling</title>
|
|
Packit |
e4b6da |
</doc:reference>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="make-nodenamemap">
|
|
Packit |
e4b6da |
<nodenamemap>
|
|
Packit |
e4b6da |
<xsl:apply-templates select="/*" mode="nodenamemap" />
|
|
Packit |
e4b6da |
</nodenamemap>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="*" mode="nodenamemap">
|
|
Packit |
e4b6da |
<xsl:variable name="is-node">
|
|
Packit |
e4b6da |
<xsl:apply-templates select="." mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
<xsl:variable name="is-top-node">
|
|
Packit |
e4b6da |
<xsl:apply-templates select="." mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:if test="@id != '' or $is-node = '1' or $is-top-node = '1'">
|
|
Packit |
e4b6da |
<xsl:text>
</xsl:text>
|
|
Packit |
e4b6da |
<nodenamemapentry>
|
|
Packit |
e4b6da |
<xsl:attribute name="id">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id" />
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:attribute name="file">
|
|
Packit |
e4b6da |
<xsl:call-template name="get-texinfo-file-name" />
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<nodename>
|
|
Packit |
e4b6da |
<xsl:apply-templates select="." mode="for-texinfo-node-name" />
|
|
Packit |
e4b6da |
</nodename>
|
|
Packit |
e4b6da |
</nodenamemapentry>
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:apply-templates mode="nodenamemap" />
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template match="text()" mode="nodenamemap">
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<doc:template name="make-texinfo-node" xmlns="">
|
|
Packit |
e4b6da |
<refpurpose>Output node element</refpurpose>
|
|
Packit |
e4b6da |
<refdescription>
|
|
Packit |
e4b6da |
<para>
|
|
Packit |
e4b6da |
This named template creates a node element in the result tree,
|
|
Packit |
e4b6da |
which corresponds to the Texinfo <literal>@node</literal> command.
|
|
Packit |
e4b6da |
</para>
|
|
Packit |
e4b6da |
</refdescription>
|
|
Packit |
e4b6da |
</doc:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="make-texinfo-node">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:variable name="is-node">
|
|
Packit |
e4b6da |
<xsl:apply-templates select="." mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
<xsl:if test="$is-node = ''">
|
|
Packit |
e4b6da |
<xsl:call-template name="user-message">
|
|
Packit |
e4b6da |
<xsl:with-param name="key">make-texinfo-node called for non-node</xsl:with-param>
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:variable name="is-top-node">
|
|
Packit |
e4b6da |
<xsl:apply-templates select="." mode="is-texinfo-top-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="$is-top-node = '1'">
|
|
Packit |
e4b6da |
<xsl:call-template name="make-texinfo-top-node" />
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:call-template name="make-texinfo-nontop-node" />
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="make-texinfo-nontop-node">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:variable name="isprevnode">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
<xsl:variable name="isnextnode">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
<xsl:variable name="isparenttopnode">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="is-texinfo-top-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
the parent node will end here, so make a menu.
|
|
Packit |
e4b6da |
-->
|
|
Packit |
e4b6da |
<xsl:if test="$isprevnode = ''">
|
|
Packit |
e4b6da |
<xsl:apply-templates select=".." mode="texinfo-menu" />
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<node>
|
|
Packit |
e4b6da |
<xsl:attribute name="id">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id" />
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="$isprevnode = '1'">
|
|
Packit |
e4b6da |
<xsl:attribute name="previousid">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="preceding-sibling::*[1]" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:when test="$isparenttopnode = '1'">
|
|
Packit |
e4b6da |
<xsl:attribute name="previousid">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select=".." />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:if test="$isnextnode = '1'">
|
|
Packit |
e4b6da |
<xsl:attribute name="nextid">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="following-sibling::*[1]" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
</xsl:if>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:attribute name="upid">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select=".." />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
</node>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:template name="make-texinfo-top-node">
|
|
Packit |
e4b6da |
<node>
|
|
Packit |
e4b6da |
<xsl:attribute name="id">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id" />
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:attribute name="previousid">
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:attribute name="nextid">
|
|
Packit |
e4b6da |
<xsl:call-template name="make-texinfo-top-node-firstchild">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="child::*[1]" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:attribute>
|
|
Packit |
e4b6da |
</node>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
templates as functions. -->
|
|
Packit |
e4b6da |
<xsl:template name="make-texinfo-top-node-firstchild">
|
|
Packit |
e4b6da |
<xsl:param name="node" />
|
|
Packit |
e4b6da |
<xsl:variable name="is-node">
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
mode="is-texinfo-node" />
|
|
Packit |
e4b6da |
</xsl:variable>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:choose>
|
|
Packit |
e4b6da |
<xsl:when test="not($node)">
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:when test="$is-node = '1'">
|
|
Packit |
e4b6da |
<xsl:call-template name="print-id">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="$node" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:when>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
<xsl:otherwise>
|
|
Packit |
e4b6da |
<xsl:call-template name="make-texinfo-top-node-firstchild">
|
|
Packit |
e4b6da |
<xsl:with-param name="node" select="$node/following-sibling::*[1]" />
|
|
Packit |
e4b6da |
</xsl:call-template>
|
|
Packit |
e4b6da |
</xsl:otherwise>
|
|
Packit |
e4b6da |
</xsl:choose>
|
|
Packit |
e4b6da |
</xsl:template>
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
|
|
Packit |
e4b6da |
</xsl:stylesheet>
|
|
Packit |
e4b6da |
|