]> git.stg.codes - stg.git/blob - doc/xslt/xhtml/maketoc.xsl
Help book chapter 3 complete
[stg.git] / doc / xslt / xhtml / maketoc.xsl
1 <?xml version="1.0" encoding="ASCII"?>
2 <!--This file was created automatically by html2xhtml-->
3 <!--from the HTML stylesheets.-->
4 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc">
5
6 <!-- ********************************************************************
7      $Id: maketoc.xsl 6910 2007-06-28 23:23:30Z xmldoc $
8      ********************************************************************
9
10      This file is part of the XSL DocBook Stylesheet distribution.
11      See ../README or http://docbook.sf.net/release/xsl/current/ for
12      copyright and other information.
13
14      ******************************************************************** -->
15
16 <!-- ==================================================================== -->
17
18 <xsl:import href="docbook.xsl"/>
19 <xsl:import href="chunk.xsl"/>
20
21 <xsl:output method="xml" indent="no" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
22
23 <xsl:param name="toc.list.type" select="'tocentry'"/>
24
25 <!-- refentry in autotoc.xsl does not use subtoc, so must
26      handle it explicitly here. -->
27 <xsl:template match="refentry" mode="toc">
28   <xsl:param name="toc-context" select="."/>
29
30   <xsl:call-template name="subtoc">
31     <xsl:with-param name="toc-context" select="$toc-context"/>
32   </xsl:call-template>
33 </xsl:template>
34
35
36 <xsl:template name="subtoc">
37   <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
38   <xsl:variable name="filename">
39     <xsl:apply-templates select="." mode="chunk-filename"/>
40   </xsl:variable>
41
42   <xsl:variable name="chunk">
43     <xsl:call-template name="chunk"/>
44   </xsl:variable>
45
46   <xsl:if test="$chunk != 0">
47     <xsl:call-template name="indent-spaces"/>
48     <xsl:variable name="id">
49       <xsl:call-template name="object.id"/>
50     </xsl:variable>
51     <tocentry linkend="{$id}">
52       <xsl:processing-instruction name="dbhtml">
53         <xsl:text>filename="</xsl:text>
54         <xsl:value-of select="$filename"/>
55         <xsl:text>"</xsl:text>
56       </xsl:processing-instruction>
57       <xsl:text>
58 </xsl:text>
59       <xsl:apply-templates mode="toc" select="$nodes"/>
60       <xsl:call-template name="indent-spaces"/>
61     </tocentry>
62     <xsl:text>
63 </xsl:text>
64   </xsl:if>
65 </xsl:template>
66
67 <xsl:template name="indent-spaces">
68   <xsl:param name="node" select="."/>
69   <xsl:text>  </xsl:text>
70   <xsl:if test="$node/parent::*">
71     <xsl:call-template name="indent-spaces">
72       <xsl:with-param name="node" select="$node/parent::*"/>
73     </xsl:call-template>
74   </xsl:if>
75 </xsl:template>
76
77 <!-- ==================================================================== -->
78
79 <xsl:template match="/" priority="-1">
80   <xsl:text>
81 </xsl:text>
82   <toc role="chunk-toc">
83     <xsl:text>
84 </xsl:text>
85     <xsl:apply-templates select="/" mode="toc"/>
86   </toc>
87   <xsl:text>
88 </xsl:text>
89 </xsl:template>
90
91 </xsl:stylesheet>