source: BOOK/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/glossary.xsl @ d7c9f58

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since d7c9f58 was d7c9f58, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Updated DocBook?-XSL code to version 1.73.2

  • Property mode set to 100644
File size: 17.3 KB
Line 
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="http://www.w3.org/1999/xhtml" version="1.0">
5
6<!-- ********************************************************************
7     $Id$
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:template match="glossary">
19 
20<xsl:variable name="language">
21  <xsl:call-template name="l10n.language"/>
22</xsl:variable>
23
24<xsl:variable name="lowercase">
25  <xsl:call-template name="gentext">
26    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
27  </xsl:call-template>
28</xsl:variable>
29
30<xsl:variable name="uppercase">
31  <xsl:call-template name="gentext">
32    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
33  </xsl:call-template>
34</xsl:variable>
35
36  <xsl:call-template name="id.warning"/>
37
38  <div>
39    <xsl:apply-templates select="." mode="class.attribute"/>
40    <xsl:if test="$generate.id.attributes != 0">
41      <xsl:attribute name="id">
42        <xsl:call-template name="object.id"/>
43      </xsl:attribute>
44    </xsl:if>
45
46    <xsl:call-template name="glossary.titlepage"/>
47
48    <xsl:choose>
49      <xsl:when test="glossdiv">
50        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
51      </xsl:when>
52      <xsl:when test="glossentry">
53        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
54      </xsl:when>
55      <xsl:otherwise>
56        <xsl:apply-templates/>
57      </xsl:otherwise>
58    </xsl:choose>
59
60    <xsl:choose>
61      <xsl:when test="glossdiv">
62        <xsl:apply-templates select="glossdiv"/>
63      </xsl:when>
64      <xsl:when test="glossentry">
65        <dl>
66          <xsl:choose>
67            <xsl:when test="$glossary.sort != 0">
68              <xsl:apply-templates select="glossentry">
69                <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                              $uppercase)"/>
70              </xsl:apply-templates>
71            </xsl:when>
72            <xsl:otherwise>
73              <xsl:apply-templates select="glossentry"/>
74            </xsl:otherwise>
75          </xsl:choose>
76        </dl>
77      </xsl:when>
78      <xsl:otherwise>
79        <!-- empty glossary -->
80      </xsl:otherwise>
81    </xsl:choose>
82
83    <xsl:if test="not(parent::article)">
84      <xsl:call-template name="process.footnotes"/>
85    </xsl:if>
86  </div>
87</xsl:template>
88
89<xsl:template match="glossary/glossaryinfo"/>
90<xsl:template match="glossary/info"/>
91<xsl:template match="glossary/title"/>
92<xsl:template match="glossary/subtitle"/>
93<xsl:template match="glossary/titleabbrev"/>
94
95<!-- ==================================================================== -->
96
97<xsl:template match="glosslist">
98 
99<xsl:variable name="language">
100  <xsl:call-template name="l10n.language"/>
101</xsl:variable>
102
103<xsl:variable name="lowercase">
104  <xsl:call-template name="gentext">
105    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
106  </xsl:call-template>
107</xsl:variable>
108
109<xsl:variable name="uppercase">
110  <xsl:call-template name="gentext">
111    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
112  </xsl:call-template>
113</xsl:variable>
114
115  <div>
116    <xsl:apply-templates select="." mode="class.attribute"/>
117    <xsl:call-template name="anchor"/>
118    <xsl:if test="blockinfo/title|info/title|title">
119      <xsl:call-template name="formal.object.heading"/>
120    </xsl:if>
121    <dl>
122      <xsl:choose>
123        <xsl:when test="$glossary.sort != 0">
124          <xsl:apply-templates select="glossentry">
125            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/>
126          </xsl:apply-templates>
127        </xsl:when>
128        <xsl:otherwise>
129          <xsl:apply-templates select="glossentry"/>
130        </xsl:otherwise>
131      </xsl:choose>
132    </dl>
133  </div>
134</xsl:template>
135
136<!-- ==================================================================== -->
137
138<xsl:template match="glossdiv">
139 
140<xsl:variable name="language">
141  <xsl:call-template name="l10n.language"/>
142</xsl:variable>
143
144<xsl:variable name="lowercase">
145  <xsl:call-template name="gentext">
146    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
147  </xsl:call-template>
148</xsl:variable>
149
150<xsl:variable name="uppercase">
151  <xsl:call-template name="gentext">
152    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
153  </xsl:call-template>
154</xsl:variable>
155
156  <xsl:call-template name="id.warning"/>
157
158  <div>
159    <xsl:apply-templates select="." mode="class.attribute"/>
160    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
161
162    <dl>
163      <xsl:choose>
164        <xsl:when test="$glossary.sort != 0">
165          <xsl:apply-templates select="glossentry">
166            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/>
167          </xsl:apply-templates>
168        </xsl:when>
169        <xsl:otherwise>
170          <xsl:apply-templates select="glossentry"/>
171        </xsl:otherwise>
172      </xsl:choose>
173    </dl>
174  </div>
175</xsl:template>
176
177<xsl:template match="glossdiv/title">
178  <h3>
179    <xsl:apply-templates select="." mode="class.attribute"/>
180    <xsl:apply-templates/>
181  </h3>
182</xsl:template>
183
184<!-- ==================================================================== -->
185
186<!--
187GlossEntry ::=
188  GlossTerm, Acronym?, Abbrev?,
189  (IndexTerm)*,
190  RevHistory?,
191  (GlossSee | GlossDef+)
192-->
193
194<xsl:template match="glossentry">
195  <xsl:choose>
196    <xsl:when test="$glossentry.show.acronym = 'primary'">
197      <dt>
198        <xsl:call-template name="anchor">
199          <xsl:with-param name="conditional">
200            <xsl:choose>
201              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
202              <xsl:otherwise>1</xsl:otherwise>
203            </xsl:choose>
204          </xsl:with-param>
205        </xsl:call-template>
206
207        <xsl:choose>
208          <xsl:when test="acronym|abbrev">
209            <xsl:apply-templates select="acronym|abbrev"/>
210            <xsl:text> (</xsl:text>
211            <xsl:apply-templates select="glossterm"/>
212            <xsl:text>)</xsl:text>
213          </xsl:when>
214          <xsl:otherwise>
215            <xsl:apply-templates select="glossterm"/>
216          </xsl:otherwise>
217        </xsl:choose>
218      </dt>
219    </xsl:when>
220    <xsl:when test="$glossentry.show.acronym = 'yes'">
221      <dt>
222        <xsl:call-template name="anchor">
223          <xsl:with-param name="conditional">
224            <xsl:choose>
225              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
226              <xsl:otherwise>1</xsl:otherwise>
227            </xsl:choose>
228          </xsl:with-param>
229        </xsl:call-template>
230
231        <xsl:apply-templates select="glossterm"/>
232
233        <xsl:if test="acronym|abbrev">
234          <xsl:text> (</xsl:text>
235          <xsl:apply-templates select="acronym|abbrev"/>
236          <xsl:text>)</xsl:text>
237        </xsl:if>
238      </dt>
239    </xsl:when>
240    <xsl:otherwise>
241      <dt>
242        <xsl:call-template name="anchor">
243          <xsl:with-param name="conditional">
244            <xsl:choose>
245              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
246              <xsl:otherwise>1</xsl:otherwise>
247            </xsl:choose>
248          </xsl:with-param>
249        </xsl:call-template>
250
251        <xsl:apply-templates select="glossterm"/>
252      </dt>
253    </xsl:otherwise>
254  </xsl:choose>
255
256  <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
257</xsl:template>
258
259<xsl:template match="glossentry/glossterm">
260  <xsl:apply-templates/>
261  <xsl:if test="following-sibling::glossterm">, </xsl:if>
262</xsl:template>
263
264<xsl:template match="glossentry/acronym">
265  <xsl:apply-templates/>
266  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
267</xsl:template>
268
269<xsl:template match="glossentry/abbrev">
270  <xsl:apply-templates/>
271  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
272</xsl:template>
273
274<xsl:template match="glossentry/revhistory">
275</xsl:template>
276
277<xsl:template match="glossentry/glosssee">
278  <xsl:variable name="otherterm" select="@otherterm"/>
279  <xsl:variable name="targets" select="key('id', $otherterm)"/>
280  <xsl:variable name="target" select="$targets[1]"/>
281
282  <dd>
283    <p>
284      <xsl:variable name="template">
285        <xsl:call-template name="gentext.template">
286          <xsl:with-param name="context" select="'glossary'"/>
287          <xsl:with-param name="name" select="'see'"/>
288        </xsl:call-template>
289      </xsl:variable>
290
291      <xsl:variable name="title">
292        <xsl:choose>
293          <xsl:when test="$target">
294            <a>
295              <xsl:apply-templates select="." mode="class.attribute"/>
296              <xsl:attribute name="href">
297                <xsl:call-template name="href.target">
298                  <xsl:with-param name="object" select="$target"/>
299                </xsl:call-template>
300              </xsl:attribute>
301              <xsl:apply-templates select="$target" mode="xref-to"/>
302            </a>
303          </xsl:when>
304          <xsl:when test="$otherterm != '' and not($target)">
305            <xsl:message>
306              <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
307              <xsl:value-of select="$otherterm"/>
308            </xsl:message>
309            <xsl:apply-templates/>
310          </xsl:when>
311          <xsl:otherwise>
312            <xsl:apply-templates/>
313          </xsl:otherwise>
314        </xsl:choose>
315      </xsl:variable>
316
317      <xsl:call-template name="substitute-markup">
318        <xsl:with-param name="template" select="$template"/>
319        <xsl:with-param name="title" select="$title"/>
320      </xsl:call-template>
321      <xsl:text>.</xsl:text>
322    </p>
323  </dd>
324</xsl:template>
325
326<xsl:template match="glossentry/glossdef">
327  <dd>
328    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
329    <xsl:if test="glossseealso">
330      <p>
331        <xsl:variable name="template">
332          <xsl:call-template name="gentext.template">
333            <xsl:with-param name="context" select="'glossary'"/>
334            <xsl:with-param name="name" select="'seealso'"/>
335          </xsl:call-template>
336        </xsl:variable>
337        <xsl:variable name="title">
338          <xsl:apply-templates select="glossseealso"/>
339        </xsl:variable>
340        <xsl:call-template name="substitute-markup">
341          <xsl:with-param name="template" select="$template"/>
342          <xsl:with-param name="title" select="$title"/>
343        </xsl:call-template>
344      </p>
345    </xsl:if>
346  </dd>
347</xsl:template>
348
349<xsl:template match="glossseealso">
350  <xsl:variable name="otherterm" select="@otherterm"/>
351  <xsl:variable name="targets" select="key('id', $otherterm)"/>
352  <xsl:variable name="target" select="$targets[1]"/>
353
354  <xsl:choose>
355    <xsl:when test="$target">
356      <a>
357        <xsl:apply-templates select="." mode="class.attribute"/>
358        <xsl:attribute name="href">
359          <xsl:call-template name="href.target">
360            <xsl:with-param name="object" select="$target"/>
361          </xsl:call-template>
362        </xsl:attribute>
363        <xsl:apply-templates select="$target" mode="xref-to"/>
364      </a>
365    </xsl:when>
366    <xsl:when test="$otherterm != '' and not($target)">
367      <xsl:message>
368        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
369        <xsl:value-of select="$otherterm"/>
370      </xsl:message>
371      <xsl:apply-templates/>
372    </xsl:when>
373    <xsl:otherwise>
374      <xsl:apply-templates/>
375    </xsl:otherwise>
376  </xsl:choose>
377
378  <xsl:choose>
379    <xsl:when test="position() = last()">
380      <xsl:text>.</xsl:text>
381    </xsl:when>
382    <xsl:otherwise>
383      <xsl:text>, </xsl:text>
384    </xsl:otherwise>
385  </xsl:choose>
386</xsl:template>
387
388<!-- ==================================================================== -->
389
390<!-- Glossary collection -->
391
392<xsl:template match="glossary[@role='auto']" priority="2">
393 
394<xsl:variable name="language">
395  <xsl:call-template name="l10n.language"/>
396</xsl:variable>
397
398<xsl:variable name="lowercase">
399  <xsl:call-template name="gentext">
400    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
401  </xsl:call-template>
402</xsl:variable>
403
404<xsl:variable name="uppercase">
405  <xsl:call-template name="gentext">
406    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
407  </xsl:call-template>
408</xsl:variable>
409
410  <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
411  <xsl:variable name="collection" select="document($glossary.collection, .)"/>
412
413  <xsl:call-template name="id.warning"/>
414
415  <xsl:if test="$glossary.collection = ''">
416    <xsl:message>
417      <xsl:text>Warning: processing automatic glossary </xsl:text>
418      <xsl:text>without a glossary.collection file.</xsl:text>
419    </xsl:message>
420  </xsl:if>
421
422  <xsl:if test="not($collection) and $glossary.collection != ''">
423    <xsl:message>
424      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
425      <xsl:text>open glossary.collection file '</xsl:text>
426      <xsl:value-of select="$glossary.collection"/>
427      <xsl:text>'</xsl:text>
428    </xsl:message>
429  </xsl:if>
430
431  <div>
432    <xsl:apply-templates select="." mode="class.attribute"/>
433    <xsl:if test="$generate.id.attributes != 0">
434      <xsl:attribute name="id">
435        <xsl:call-template name="object.id"/>
436      </xsl:attribute>
437    </xsl:if>
438
439    <xsl:call-template name="glossary.titlepage"/>
440
441    <xsl:choose>
442      <xsl:when test="glossdiv and $collection//glossdiv">
443        <xsl:for-each select="$collection//glossdiv">
444          <!-- first see if there are any in this div -->
445          <xsl:variable name="exist.test">
446            <xsl:for-each select="glossentry">
447              <xsl:variable name="cterm" select="glossterm"/>
448              <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
449                <xsl:value-of select="glossterm"/>
450              </xsl:if>
451            </xsl:for-each>
452          </xsl:variable>
453
454          <xsl:if test="$exist.test != ''">
455            <xsl:apply-templates select="." mode="auto-glossary">
456              <xsl:with-param name="terms" select="$terms"/>
457            </xsl:apply-templates>
458          </xsl:if>
459        </xsl:for-each>
460      </xsl:when>
461      <xsl:otherwise>
462        <dl>
463          <xsl:choose>
464            <xsl:when test="$glossary.sort != 0">
465              <xsl:for-each select="$collection//glossentry">
466                <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                              $uppercase)"/>
467                <xsl:variable name="cterm" select="glossterm"/>
468                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
469                  <xsl:apply-templates select="." mode="auto-glossary"/>
470                </xsl:if>
471              </xsl:for-each>
472            </xsl:when>
473            <xsl:otherwise>
474              <xsl:for-each select="$collection//glossentry">
475                <xsl:variable name="cterm" select="glossterm"/>
476                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
477                  <xsl:apply-templates select="." mode="auto-glossary"/>
478                </xsl:if>
479              </xsl:for-each>
480            </xsl:otherwise>
481          </xsl:choose>
482        </dl>
483      </xsl:otherwise>
484    </xsl:choose>
485
486    <xsl:if test="not(parent::article)">
487      <xsl:call-template name="process.footnotes"/>
488    </xsl:if>
489  </div>
490</xsl:template>
491
492<xsl:template match="*" mode="auto-glossary">
493  <!-- pop back out to the default mode for most elements -->
494  <xsl:apply-templates select="."/>
495</xsl:template>
496
497<xsl:template match="glossdiv" mode="auto-glossary">
498  <xsl:param name="terms" select="."/>
499
500 
501<xsl:variable name="language">
502  <xsl:call-template name="l10n.language"/>
503</xsl:variable>
504
505<xsl:variable name="lowercase">
506  <xsl:call-template name="gentext">
507    <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
508  </xsl:call-template>
509</xsl:variable>
510
511<xsl:variable name="uppercase">
512  <xsl:call-template name="gentext">
513    <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
514  </xsl:call-template>
515</xsl:variable>
516
517
518  <div>
519    <xsl:apply-templates select="." mode="class.attribute"/>
520    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
521
522    <dl>
523      <xsl:choose>
524        <xsl:when test="$glossary.sort != 0">
525          <xsl:for-each select="glossentry">
526            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/>
527            <xsl:variable name="cterm" select="glossterm"/>
528            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
529              <xsl:apply-templates select="." mode="auto-glossary"/>
530            </xsl:if>
531          </xsl:for-each>
532        </xsl:when>
533        <xsl:otherwise>
534          <xsl:for-each select="glossentry">
535            <xsl:variable name="cterm" select="glossterm"/>
536            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
537              <xsl:apply-templates select="." mode="auto-glossary"/>
538            </xsl:if>
539          </xsl:for-each>
540        </xsl:otherwise>
541      </xsl:choose>
542    </dl>
543  </div>
544</xsl:template>
545
546<!-- ==================================================================== -->
547
548</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.