source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/html/index.xsl@ 15c7d39

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 15c7d39 was 15c7d39, checked in by Matthew Burgess <matthew@…>, 11 years ago

Update stylesheets to docbook-xsl-1.78.1.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10355 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 9.9 KB
Line 
1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 version='1.0'>
4
5<!-- ********************************************************************
6 $Id: index.xsl 9297 2012-04-22 03:56:16Z bobstayton $
7 ********************************************************************
8
9 This file is part of the XSL DocBook Stylesheet distribution.
10 See ../README or http://docbook.sf.net/release/xsl/current/ for
11 copyright and other information.
12
13 ******************************************************************** -->
14
15<!-- ==================================================================== -->
16
17<xsl:template match="index">
18 <!-- some implementations use completely empty index tags to indicate -->
19 <!-- where an automatically generated index should be inserted. so -->
20 <!-- if the index is completely empty, skip it. Unless generate.index -->
21 <!-- is non-zero, in which case, this is where the automatically -->
22 <!-- generated index should go. -->
23
24 <xsl:call-template name="id.warning"/>
25
26 <xsl:if test="count(*)>0 or $generate.index != '0'">
27 <div>
28 <xsl:apply-templates select="." mode="common.html.attributes"/>
29 <xsl:call-template name="id.attribute">
30 <xsl:with-param name="conditional" select="0"/>
31 </xsl:call-template>
32
33 <xsl:call-template name="index.titlepage"/>
34 <xsl:choose>
35 <xsl:when test="indexdiv">
36 <xsl:apply-templates/>
37 </xsl:when>
38 <xsl:otherwise>
39 <xsl:apply-templates select="*[not(self::indexentry)]"/>
40 <!-- Because it's actually valid for Index to have neither any -->
41 <!-- Indexdivs nor any Indexentries, we need to check and make -->
42 <!-- sure that at least one Indexentry exists, and generate a -->
43 <!-- wrapper dl if there is at least one; otherwise, do nothing. -->
44 <xsl:if test="indexentry">
45 <!-- The indexentry template assumes a parent dl wrapper has -->
46 <!-- been generated; for Indexes that have Indexdivs, the dl -->
47 <!-- wrapper is generated by the indexdiv template; however, -->
48 <!-- for Indexes that lack Indexdivs, if we don't generate a -->
49 <!-- dl here, HTML output will not be valid. -->
50 <dl>
51 <xsl:apply-templates select="indexentry"/>
52 </dl>
53 </xsl:if>
54 </xsl:otherwise>
55 </xsl:choose>
56
57 <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
58 <xsl:call-template name="generate-index">
59 <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/>
60 </xsl:call-template>
61 </xsl:if>
62
63 <xsl:if test="not(parent::article)">
64 <xsl:call-template name="process.footnotes"/>
65 </xsl:if>
66 </div>
67 </xsl:if>
68</xsl:template>
69
70<xsl:template match="setindex">
71 <!-- some implementations use completely empty index tags to indicate -->
72 <!-- where an automatically generated index should be inserted. so -->
73 <!-- if the index is completely empty, skip it. Unless generate.index -->
74 <!-- is non-zero, in which case, this is where the automatically -->
75 <!-- generated index should go. -->
76
77 <xsl:call-template name="id.warning"/>
78
79 <xsl:if test="count(*)>0 or $generate.index != '0'">
80 <div>
81 <xsl:apply-templates select="." mode="common.html.attributes"/>
82 <xsl:call-template name="id.attribute">
83 <xsl:with-param name="conditional" select="0"/>
84 </xsl:call-template>
85
86 <xsl:call-template name="setindex.titlepage"/>
87 <xsl:apply-templates/>
88
89 <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
90 <xsl:call-template name="generate-index">
91 <xsl:with-param name="scope" select="/"/>
92 </xsl:call-template>
93 </xsl:if>
94
95 <xsl:if test="not(parent::article)">
96 <xsl:call-template name="process.footnotes"/>
97 </xsl:if>
98 </div>
99 </xsl:if>
100</xsl:template>
101
102<xsl:template match="index/indexinfo"></xsl:template>
103<xsl:template match="index/info"></xsl:template>
104<xsl:template match="index/title"></xsl:template>
105<xsl:template match="index/subtitle"></xsl:template>
106<xsl:template match="index/titleabbrev"></xsl:template>
107
108<!-- ==================================================================== -->
109
110<xsl:template match="indexdiv">
111 <xsl:call-template name="id.warning"/>
112
113 <div>
114 <xsl:apply-templates select="." mode="common.html.attributes"/>
115 <xsl:call-template name="id.attribute"/>
116 <xsl:call-template name="anchor"/>
117 <xsl:apply-templates select="*[not(self::indexentry)]"/>
118 <dl>
119 <xsl:apply-templates select="indexentry"/>
120 </dl>
121 </div>
122</xsl:template>
123
124<xsl:template match="indexdiv/title">
125 <h3>
126 <xsl:apply-templates select="." mode="common.html.attributes"/>
127 <xsl:apply-templates/>
128 </h3>
129</xsl:template>
130
131<!-- ==================================================================== -->
132
133<xsl:template match="indexterm">
134 <!-- this one must have a name, even if it doesn't have an ID -->
135 <xsl:variable name="id">
136 <xsl:call-template name="object.id"/>
137 </xsl:variable>
138
139 <a class="indexterm" name="{$id}"/>
140</xsl:template>
141
142<xsl:template match="primary|secondary|tertiary|see|seealso">
143</xsl:template>
144
145<!-- ==================================================================== -->
146
147<xsl:template match="indexentry">
148 <xsl:apply-templates select="primaryie"/>
149</xsl:template>
150
151<xsl:template match="primaryie">
152 <dt>
153 <xsl:apply-templates/>
154 </dt>
155 <dd>
156 <xsl:apply-templates select="following-sibling::seeie
157 [not(preceding-sibling::secondaryie)]"
158 mode="indexentry"/>
159 <xsl:apply-templates select="following-sibling::seealsoie
160 [not(preceding-sibling::secondaryie)]"
161 mode="indexentry"/>
162 <xsl:apply-templates select="following-sibling::secondaryie"
163 mode="indexentry"/>
164 </dd>
165</xsl:template>
166
167<!-- Handled in mode to convert flat list to structured output -->
168<xsl:template match="secondaryie">
169</xsl:template>
170<xsl:template match="tertiaryie">
171</xsl:template>
172<xsl:template match="seeie|seealsoie">
173</xsl:template>
174
175<xsl:template match="secondaryie" mode="indexentry">
176 <dl>
177 <dt>
178 <xsl:apply-templates/>
179 </dt>
180 <dd>
181 <!-- select following see* elements up to next secondaryie or tertiary or end -->
182 <xsl:variable name="after.this"
183 select="following-sibling::*"/>
184 <xsl:variable name="next.entry"
185 select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
186 <xsl:variable name="before.entry"
187 select="$next.entry/preceding-sibling::*"/>
188 <xsl:variable name="see.intersection"
189 select="$after.this[count(.|$before.entry) = count($before.entry)]
190 [self::seeie or self::seealsoie]"/>
191 <xsl:choose>
192 <xsl:when test="count($see.intersection) != 0">
193 <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
194 </xsl:when>
195 <xsl:when test="count($next.entry) = 0">
196 <xsl:apply-templates select="following-sibling::seeie"
197 mode="indexentry"/>
198 <xsl:apply-templates select="following-sibling::seealsoie"
199 mode="indexentry"/>
200 </xsl:when>
201 </xsl:choose>
202
203 <!-- now process any tertiaryie before the next secondaryie -->
204 <xsl:variable name="before.next.secondary"
205 select="following-sibling::secondaryie[1]/preceding-sibling::*"/>
206 <xsl:variable name="tertiary.intersection"
207 select="$after.this[count(.|$before.next.secondary) =
208 count($before.next.secondary)]
209 [not(self::seeie) and not(self::seealsoie)]"/>
210 <xsl:choose>
211 <xsl:when test="count($tertiary.intersection) != 0">
212 <xsl:apply-templates select="$tertiary.intersection"
213 mode="indexentry"/>
214 </xsl:when>
215 <xsl:when test="not(following-sibling::secondaryie)">
216 <xsl:apply-templates select="following-sibling::tertiaryie"
217 mode="indexentry"/>
218 </xsl:when>
219 </xsl:choose>
220 </dd>
221 </dl>
222</xsl:template>
223
224<xsl:template match="tertiaryie" mode="indexentry">
225 <dl>
226 <dt>
227 <xsl:apply-templates/>
228 </dt>
229 <dd>
230 <!-- select following see* elements up to next secondaryie or tertiary or end -->
231 <xsl:variable name="after.this"
232 select="following-sibling::*"/>
233 <xsl:variable name="next.entry"
234 select="(following-sibling::secondaryie|following-sibling::tertiaryie)[1]"/>
235 <xsl:variable name="before.entry"
236 select="$next.entry/preceding-sibling::*"/>
237 <xsl:variable name="see.intersection"
238 select="$after.this[count(.|$before.entry) = count($before.entry)]
239 [self::seeie or self::seealsoie]"/>
240 <xsl:choose>
241 <xsl:when test="count($see.intersection) != 0">
242 <xsl:apply-templates select="$see.intersection" mode="indexentry"/>
243 </xsl:when>
244 <xsl:when test="count($next.entry) = 0">
245 <xsl:apply-templates select="following-sibling::seeie"
246 mode="indexentry"/>
247 <xsl:apply-templates select="following-sibling::seealsoie"
248 mode="indexentry"/>
249 </xsl:when>
250 </xsl:choose>
251 </dd>
252 </dl>
253</xsl:template>
254
255<xsl:template match="seeie" mode="indexentry">
256 <dt>
257 <xsl:text>(</xsl:text>
258 <xsl:call-template name="gentext">
259 <xsl:with-param name="key" select="'see'"/>
260 </xsl:call-template>
261 <xsl:text> </xsl:text>
262 <xsl:apply-templates/>
263 <xsl:text>)</xsl:text>
264 </dt>
265</xsl:template>
266
267<xsl:template match="seealsoie" mode="indexentry">
268 <div>
269 <xsl:text>(</xsl:text>
270 <xsl:call-template name="gentext">
271 <xsl:with-param name="key" select="'seealso'"/>
272 </xsl:call-template>
273 <xsl:text> </xsl:text>
274 <xsl:apply-templates/>
275 <xsl:text>)</xsl:text>
276 </div>
277</xsl:template>
278
279</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.