OLD | NEW |
| (Empty) |
1 <?xml version='1.0'?> | |
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |
3 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" | |
4 exclude-result-prefixes="doc" | |
5 version='1.0'> | |
6 | |
7 <!-- ******************************************************************** | |
8 $Id: gentext.xsl 9286 2012-04-19 10:10:58Z bobstayton $ | |
9 ******************************************************************** | |
10 | |
11 This file is part of the XSL DocBook Stylesheet distribution. | |
12 See ../README or http://docbook.sf.net/release/xsl/current/ for | |
13 copyright and other information. | |
14 | |
15 ******************************************************************** --> | |
16 | |
17 <!-- ==================================================================== --> | |
18 | |
19 | |
20 <xsl:template match="*" mode="object.title.template"> | |
21 <xsl:call-template name="gentext.template"> | |
22 <xsl:with-param name="context" select="'title'"/> | |
23 <xsl:with-param name="name"> | |
24 <xsl:call-template name="xpath.location"/> | |
25 </xsl:with-param> | |
26 </xsl:call-template> | |
27 </xsl:template> | |
28 | |
29 <xsl:template match="chapter" mode="object.title.template"> | |
30 <xsl:choose> | |
31 <xsl:when test="string($chapter.autolabel) != 0"> | |
32 <xsl:call-template name="gentext.template"> | |
33 <xsl:with-param name="context" select="'title-numbered'"/> | |
34 <xsl:with-param name="name"> | |
35 <xsl:call-template name="xpath.location"/> | |
36 </xsl:with-param> | |
37 </xsl:call-template> | |
38 </xsl:when> | |
39 <xsl:otherwise> | |
40 <xsl:call-template name="gentext.template"> | |
41 <xsl:with-param name="context" select="'title-unnumbered'"/> | |
42 <xsl:with-param name="name"> | |
43 <xsl:call-template name="xpath.location"/> | |
44 </xsl:with-param> | |
45 </xsl:call-template> | |
46 </xsl:otherwise> | |
47 </xsl:choose> | |
48 </xsl:template> | |
49 | |
50 <xsl:template match="appendix" mode="object.title.template"> | |
51 <xsl:choose> | |
52 <xsl:when test="string($appendix.autolabel) != 0"> | |
53 <xsl:call-template name="gentext.template"> | |
54 <xsl:with-param name="context" select="'title-numbered'"/> | |
55 <xsl:with-param name="name"> | |
56 <xsl:call-template name="xpath.location"/> | |
57 </xsl:with-param> | |
58 </xsl:call-template> | |
59 </xsl:when> | |
60 <xsl:otherwise> | |
61 <xsl:call-template name="gentext.template"> | |
62 <xsl:with-param name="context" select="'title-unnumbered'"/> | |
63 <xsl:with-param name="name"> | |
64 <xsl:call-template name="xpath.location"/> | |
65 </xsl:with-param> | |
66 </xsl:call-template> | |
67 </xsl:otherwise> | |
68 </xsl:choose> | |
69 </xsl:template> | |
70 | |
71 <xsl:template match="part" mode="object.title.template"> | |
72 <xsl:choose> | |
73 <xsl:when test="string($part.autolabel) != 0"> | |
74 <xsl:call-template name="gentext.template"> | |
75 <xsl:with-param name="context" select="'title-numbered'"/> | |
76 <xsl:with-param name="name"> | |
77 <xsl:call-template name="xpath.location"/> | |
78 </xsl:with-param> | |
79 </xsl:call-template> | |
80 </xsl:when> | |
81 <xsl:otherwise> | |
82 <xsl:call-template name="gentext.template"> | |
83 <xsl:with-param name="context" select="'title-unnumbered'"/> | |
84 <xsl:with-param name="name"> | |
85 <xsl:call-template name="xpath.location"/> | |
86 </xsl:with-param> | |
87 </xsl:call-template> | |
88 </xsl:otherwise> | |
89 </xsl:choose> | |
90 </xsl:template> | |
91 | |
92 <xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect | |
93 |bridgehead|topic" | |
94 mode="object.title.template"> | |
95 <xsl:variable name="is.numbered"> | |
96 <xsl:call-template name="label.this.section"/> | |
97 </xsl:variable> | |
98 <xsl:choose> | |
99 <xsl:when test="$is.numbered != 0"> | |
100 <xsl:call-template name="gentext.template"> | |
101 <xsl:with-param name="context" select="'title-numbered'"/> | |
102 <xsl:with-param name="name"> | |
103 <xsl:call-template name="xpath.location"/> | |
104 </xsl:with-param> | |
105 </xsl:call-template> | |
106 </xsl:when> | |
107 <xsl:otherwise> | |
108 <xsl:call-template name="gentext.template"> | |
109 <xsl:with-param name="context" select="'title-unnumbered'"/> | |
110 <xsl:with-param name="name"> | |
111 <xsl:call-template name="xpath.location"/> | |
112 </xsl:with-param> | |
113 </xsl:call-template> | |
114 </xsl:otherwise> | |
115 </xsl:choose> | |
116 </xsl:template> | |
117 | |
118 <xsl:template match="procedure" mode="object.title.template"> | |
119 <xsl:choose> | |
120 <xsl:when test="$formal.procedures != 0 and title"> | |
121 <xsl:call-template name="gentext.template"> | |
122 <xsl:with-param name="context" select="'title'"/> | |
123 <xsl:with-param name="name"> | |
124 <xsl:call-template name="xpath.location"/> | |
125 <xsl:text>.formal</xsl:text> | |
126 </xsl:with-param> | |
127 </xsl:call-template> | |
128 </xsl:when> | |
129 <xsl:otherwise> | |
130 <xsl:call-template name="gentext.template"> | |
131 <xsl:with-param name="context" select="'title'"/> | |
132 <xsl:with-param name="name"> | |
133 <xsl:call-template name="xpath.location"/> | |
134 </xsl:with-param> | |
135 </xsl:call-template> | |
136 </xsl:otherwise> | |
137 </xsl:choose> | |
138 </xsl:template> | |
139 | |
140 <!-- ============================================================ --> | |
141 | |
142 <xsl:template match="*" mode="object.subtitle.template"> | |
143 <xsl:call-template name="gentext.template"> | |
144 <xsl:with-param name="context" select="'subtitle'"/> | |
145 <xsl:with-param name="name"> | |
146 <xsl:call-template name="xpath.location"/> | |
147 </xsl:with-param> | |
148 </xsl:call-template> | |
149 </xsl:template> | |
150 | |
151 <!-- ============================================================ --> | |
152 | |
153 <xsl:template match="*" mode="is.autonumber"> | |
154 <xsl:value-of select="'0'"/> | |
155 </xsl:template> | |
156 | |
157 <xsl:template match="section|sect1|sect2|sect3|sect4|sect5" | |
158 mode="is.autonumber"> | |
159 <xsl:call-template name="label.this.section"/> | |
160 </xsl:template> | |
161 | |
162 <xsl:template match="figure|example|table|equation" mode="is.autonumber"> | |
163 <xsl:value-of select="'1'"/> | |
164 </xsl:template> | |
165 | |
166 <xsl:template match="appendix" mode="is.autonumber"> | |
167 <xsl:value-of select="$appendix.autolabel"/> | |
168 </xsl:template> | |
169 | |
170 <xsl:template match="chapter" mode="is.autonumber"> | |
171 <xsl:value-of select="$chapter.autolabel"/> | |
172 </xsl:template> | |
173 | |
174 <xsl:template match="part" mode="is.autonumber"> | |
175 <xsl:value-of select="$part.autolabel"/> | |
176 </xsl:template> | |
177 | |
178 <xsl:template match="preface" mode="is.autonumber"> | |
179 <xsl:value-of select="$preface.autolabel"/> | |
180 </xsl:template> | |
181 | |
182 <xsl:template match="question|answer" mode="is.autonumber"> | |
183 <xsl:choose> | |
184 <xsl:when test="$qanda.defaultlabel = 'number' | |
185 and not(label)"> | |
186 <xsl:value-of select="'1'"/> | |
187 </xsl:when> | |
188 <xsl:otherwise> | |
189 <xsl:value-of select="'0'"/> | |
190 </xsl:otherwise> | |
191 </xsl:choose> | |
192 </xsl:template> | |
193 | |
194 <xsl:template match="qandadiv" mode="is.autonumber"> | |
195 <xsl:value-of select="$qandadiv.autolabel"/> | |
196 </xsl:template> | |
197 | |
198 <xsl:template match="bridgehead" mode="is.autonumber"> | |
199 <xsl:value-of select="$section.autolabel"/> | |
200 </xsl:template> | |
201 | |
202 <xsl:template match="procedure" mode="is.autonumber"> | |
203 <xsl:value-of select="$formal.procedures"/> | |
204 </xsl:template> | |
205 | |
206 | |
207 <xsl:template match="*" mode="object.xref.template"> | |
208 <xsl:param name="purpose"/> | |
209 <xsl:param name="xrefstyle"/> | |
210 <xsl:param name="referrer"/> | |
211 | |
212 <!-- Is autonumbering on? --> | |
213 <xsl:variable name="autonumber"> | |
214 <xsl:apply-templates select="." mode="is.autonumber"/> | |
215 </xsl:variable> | |
216 | |
217 <xsl:variable name="number-and-title-template"> | |
218 <xsl:call-template name="gentext.template.exists"> | |
219 <xsl:with-param name="context" select="'xref-number-and-title'"/> | |
220 <xsl:with-param name="name"> | |
221 <xsl:call-template name="xpath.location"/> | |
222 </xsl:with-param> | |
223 </xsl:call-template> | |
224 </xsl:variable> | |
225 | |
226 <xsl:variable name="number-template"> | |
227 <xsl:call-template name="gentext.template.exists"> | |
228 <xsl:with-param name="context" select="'xref-number'"/> | |
229 <xsl:with-param name="name"> | |
230 <xsl:call-template name="xpath.location"/> | |
231 </xsl:with-param> | |
232 </xsl:call-template> | |
233 </xsl:variable> | |
234 | |
235 <xsl:variable name="context"> | |
236 <xsl:choose> | |
237 <xsl:when test="self::equation and not(title) and not(info/title)"> | |
238 <xsl:value-of select="'xref-number'"/> | |
239 </xsl:when> | |
240 <xsl:when test="string($autonumber) != 0 | |
241 and $number-and-title-template != 0 | |
242 and $xref.with.number.and.title != 0"> | |
243 <xsl:value-of select="'xref-number-and-title'"/> | |
244 </xsl:when> | |
245 <xsl:when test="string($autonumber) != 0 | |
246 and $number-template != 0"> | |
247 <xsl:value-of select="'xref-number'"/> | |
248 </xsl:when> | |
249 <xsl:otherwise> | |
250 <xsl:value-of select="'xref'"/> | |
251 </xsl:otherwise> | |
252 </xsl:choose> | |
253 </xsl:variable> | |
254 | |
255 <xsl:call-template name="gentext.template"> | |
256 <xsl:with-param name="context" select="$context"/> | |
257 <xsl:with-param name="name"> | |
258 <xsl:call-template name="xpath.location"/> | |
259 </xsl:with-param> | |
260 <xsl:with-param name="purpose" select="$purpose"/> | |
261 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
262 <xsl:with-param name="referrer" select="$referrer"/> | |
263 </xsl:call-template> | |
264 | |
265 </xsl:template> | |
266 | |
267 | |
268 <!-- ============================================================ --> | |
269 | |
270 <xsl:template match="*" mode="object.title.markup"> | |
271 <xsl:param name="allow-anchors" select="0"/> | |
272 <xsl:variable name="template"> | |
273 <xsl:apply-templates select="." mode="object.title.template"/> | |
274 </xsl:variable> | |
275 | |
276 <!-- | |
277 <xsl:message> | |
278 <xsl:text>object.title.markup: </xsl:text> | |
279 <xsl:value-of select="local-name(.)"/> | |
280 <xsl:text>: </xsl:text> | |
281 <xsl:value-of select="$template"/> | |
282 </xsl:message> | |
283 --> | |
284 | |
285 <xsl:call-template name="substitute-markup"> | |
286 <xsl:with-param name="allow-anchors" select="$allow-anchors"/> | |
287 <xsl:with-param name="template" select="$template"/> | |
288 </xsl:call-template> | |
289 </xsl:template> | |
290 | |
291 <xsl:template match="*" mode="object.title.markup.textonly"> | |
292 <xsl:variable name="title"> | |
293 <xsl:apply-templates select="." mode="object.title.markup"/> | |
294 </xsl:variable> | |
295 <xsl:value-of select="normalize-space($title)"/> | |
296 </xsl:template> | |
297 | |
298 <!-- ============================================================ --> | |
299 | |
300 <xsl:template match="*" mode="object.titleabbrev.markup"> | |
301 <xsl:param name="allow-anchors" select="0"/> | |
302 | |
303 <!-- Just for consistency in template naming --> | |
304 | |
305 <xsl:apply-templates select="." mode="titleabbrev.markup"> | |
306 <xsl:with-param name="allow-anchors" select="$allow-anchors"/> | |
307 </xsl:apply-templates> | |
308 </xsl:template> | |
309 | |
310 <!-- ============================================================ --> | |
311 | |
312 <xsl:template match="*" mode="object.subtitle.markup"> | |
313 <xsl:variable name="template"> | |
314 <xsl:apply-templates select="." mode="object.subtitle.template"/> | |
315 </xsl:variable> | |
316 | |
317 <xsl:call-template name="substitute-markup"> | |
318 <xsl:with-param name="template" select="$template"/> | |
319 </xsl:call-template> | |
320 </xsl:template> | |
321 | |
322 <!-- ============================================================ --> | |
323 | |
324 <xsl:template match="*" mode="object.xref.markup"> | |
325 <xsl:param name="purpose"/> | |
326 <xsl:param name="xrefstyle"/> | |
327 <xsl:param name="referrer"/> | |
328 <xsl:param name="verbose" select="1"/> | |
329 | |
330 <xsl:variable name="template"> | |
331 <xsl:choose> | |
332 <xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')"> | |
333 <xsl:call-template name="make.gentext.template"> | |
334 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
335 <xsl:with-param name="purpose" select="$purpose"/> | |
336 <xsl:with-param name="referrer" select="$referrer"/> | |
337 </xsl:call-template> | |
338 </xsl:when> | |
339 <xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')"> | |
340 <xsl:value-of select="substring-after(normalize-space($xrefstyle), 'temp
late:')"/> | |
341 </xsl:when> | |
342 <xsl:otherwise> | |
343 <xsl:apply-templates select="." mode="object.xref.template"> | |
344 <xsl:with-param name="purpose" select="$purpose"/> | |
345 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
346 <xsl:with-param name="referrer" select="$referrer"/> | |
347 </xsl:apply-templates> | |
348 </xsl:otherwise> | |
349 </xsl:choose> | |
350 </xsl:variable> | |
351 | |
352 <!-- | |
353 <xsl:message> | |
354 <xsl:text>object.xref.markup: </xsl:text> | |
355 <xsl:value-of select="local-name(.)"/> | |
356 <xsl:text>(</xsl:text> | |
357 <xsl:value-of select="$xrefstyle"/> | |
358 <xsl:text>, </xsl:text> | |
359 <xsl:value-of select="$purpose"/> | |
360 <xsl:text>)</xsl:text> | |
361 <xsl:text>: [</xsl:text> | |
362 <xsl:value-of select="$template"/> | |
363 <xsl:text>]</xsl:text> | |
364 </xsl:message> | |
365 --> | |
366 | |
367 <xsl:if test="$template = '' and $verbose != 0"> | |
368 <xsl:message> | |
369 <xsl:text>object.xref.markup: empty xref template</xsl:text> | |
370 <xsl:text> for linkend="</xsl:text> | |
371 <xsl:value-of select="@id|@xml:id"/> | |
372 <xsl:text>" and @xrefstyle="</xsl:text> | |
373 <xsl:value-of select="$xrefstyle"/> | |
374 <xsl:text>"</xsl:text> | |
375 </xsl:message> | |
376 </xsl:if> | |
377 | |
378 <xsl:call-template name="substitute-markup"> | |
379 <xsl:with-param name="purpose" select="$purpose"/> | |
380 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
381 <xsl:with-param name="referrer" select="$referrer"/> | |
382 <xsl:with-param name="template" select="$template"/> | |
383 <xsl:with-param name="verbose" select="$verbose"/> | |
384 </xsl:call-template> | |
385 </xsl:template> | |
386 | |
387 <xsl:template match="listitem" mode="object.xref.markup"> | |
388 <xsl:param name="verbose" select="1"/> | |
389 | |
390 <xsl:choose> | |
391 <xsl:when test="parent::orderedlist"> | |
392 <xsl:variable name="template"> | |
393 <xsl:apply-templates select="." mode="object.xref.template"/> | |
394 </xsl:variable> | |
395 <xsl:call-template name="substitute-markup"> | |
396 <xsl:with-param name="template" select="$template"/> | |
397 </xsl:call-template> | |
398 </xsl:when> | |
399 <xsl:when test="$verbose != 0"> | |
400 <xsl:message> | |
401 <xsl:text>Xref is only supported to listitems in an</xsl:text> | |
402 <xsl:text> orderedlist: </xsl:text> | |
403 <xsl:value-of select=".//@id|.//@xml:id"/> | |
404 </xsl:message> | |
405 <xsl:text>???</xsl:text> | |
406 </xsl:when> | |
407 </xsl:choose> | |
408 </xsl:template> | |
409 | |
410 <xsl:template match="question" mode="object.xref.markup"> | |
411 <xsl:param name="purpose"/> | |
412 <xsl:param name="xrefstyle"/> | |
413 <xsl:param name="referrer"/> | |
414 | |
415 <xsl:variable name="deflabel"> | |
416 <xsl:choose> | |
417 <xsl:when test="ancestor-or-self::*[@defaultlabel]"> | |
418 <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()] | |
419 /@defaultlabel"/> | |
420 </xsl:when> | |
421 <xsl:otherwise> | |
422 <xsl:value-of select="$qanda.defaultlabel"/> | |
423 </xsl:otherwise> | |
424 </xsl:choose> | |
425 </xsl:variable> | |
426 | |
427 <xsl:variable name="template"> | |
428 <xsl:choose> | |
429 <!-- This avoids double Q: Q: in xref when defaultlabel=qanda --> | |
430 <xsl:when test="$deflabel = 'qanda' and not(label)">%n</xsl:when> | |
431 <xsl:otherwise> | |
432 <xsl:apply-templates select="." mode="object.xref.template"> | |
433 <xsl:with-param name="purpose" select="$purpose"/> | |
434 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
435 <xsl:with-param name="referrer" select="$referrer"/> | |
436 </xsl:apply-templates> | |
437 </xsl:otherwise> | |
438 </xsl:choose> | |
439 </xsl:variable> | |
440 | |
441 <xsl:call-template name="substitute-markup"> | |
442 <xsl:with-param name="purpose" select="$purpose"/> | |
443 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
444 <xsl:with-param name="referrer" select="$referrer"/> | |
445 <xsl:with-param name="template" select="$template"/> | |
446 </xsl:call-template> | |
447 </xsl:template> | |
448 | |
449 <!-- ============================================================ --> | |
450 | |
451 <xsl:template name="substitute-markup"> | |
452 <xsl:param name="template" select="''"/> | |
453 <xsl:param name="allow-anchors" select="'0'"/> | |
454 <xsl:param name="title" select="''"/> | |
455 <xsl:param name="subtitle" select="''"/> | |
456 <xsl:param name="docname" select="''"/> | |
457 <xsl:param name="label" select="''"/> | |
458 <xsl:param name="pagenumber" select="''"/> | |
459 <xsl:param name="purpose"/> | |
460 <xsl:param name="xrefstyle"/> | |
461 <xsl:param name="referrer"/> | |
462 <xsl:param name="verbose"/> | |
463 | |
464 <xsl:choose> | |
465 <xsl:when test="contains($template, '%')"> | |
466 <xsl:value-of select="substring-before($template, '%')"/> | |
467 <xsl:variable name="candidate" | |
468 select="substring(substring-after($template, '%'), 1, 1)"/> | |
469 <xsl:choose> | |
470 <xsl:when test="$candidate = 't'"> | |
471 <xsl:apply-templates select="." mode="insert.title.markup"> | |
472 <xsl:with-param name="purpose" select="$purpose"/> | |
473 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
474 <xsl:with-param name="title"> | |
475 <xsl:choose> | |
476 <xsl:when test="$title != ''"> | |
477 <xsl:copy-of select="$title"/> | |
478 </xsl:when> | |
479 <xsl:otherwise> | |
480 <xsl:apply-templates select="." mode="title.markup"> | |
481 <xsl:with-param name="allow-anchors" select="$allow-anchors"
/> | |
482 <xsl:with-param name="verbose" select="$verbose"/> | |
483 </xsl:apply-templates> | |
484 </xsl:otherwise> | |
485 </xsl:choose> | |
486 </xsl:with-param> | |
487 </xsl:apply-templates> | |
488 </xsl:when> | |
489 <xsl:when test="$candidate = 's'"> | |
490 <xsl:apply-templates select="." mode="insert.subtitle.markup"> | |
491 <xsl:with-param name="purpose" select="$purpose"/> | |
492 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
493 <xsl:with-param name="subtitle"> | |
494 <xsl:choose> | |
495 <xsl:when test="$subtitle != ''"> | |
496 <xsl:copy-of select="$subtitle"/> | |
497 </xsl:when> | |
498 <xsl:otherwise> | |
499 <xsl:apply-templates select="." mode="subtitle.markup"> | |
500 <xsl:with-param name="allow-anchors" select="$allow-anchors"
/> | |
501 </xsl:apply-templates> | |
502 </xsl:otherwise> | |
503 </xsl:choose> | |
504 </xsl:with-param> | |
505 </xsl:apply-templates> | |
506 </xsl:when> | |
507 <xsl:when test="$candidate = 'n'"> | |
508 <xsl:apply-templates select="." mode="insert.label.markup"> | |
509 <xsl:with-param name="purpose" select="$purpose"/> | |
510 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
511 <xsl:with-param name="label"> | |
512 <xsl:choose> | |
513 <xsl:when test="$label != ''"> | |
514 <xsl:copy-of select="$label"/> | |
515 </xsl:when> | |
516 <xsl:otherwise> | |
517 <xsl:apply-templates select="." mode="label.markup"/> | |
518 </xsl:otherwise> | |
519 </xsl:choose> | |
520 </xsl:with-param> | |
521 </xsl:apply-templates> | |
522 </xsl:when> | |
523 <xsl:when test="$candidate = 'p'"> | |
524 <xsl:apply-templates select="." mode="insert.pagenumber.markup"> | |
525 <xsl:with-param name="purpose" select="$purpose"/> | |
526 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
527 <xsl:with-param name="pagenumber"> | |
528 <xsl:choose> | |
529 <xsl:when test="$pagenumber != ''"> | |
530 <xsl:copy-of select="$pagenumber"/> | |
531 </xsl:when> | |
532 <xsl:otherwise> | |
533 <xsl:apply-templates select="." mode="pagenumber.markup"/> | |
534 </xsl:otherwise> | |
535 </xsl:choose> | |
536 </xsl:with-param> | |
537 </xsl:apply-templates> | |
538 </xsl:when> | |
539 <xsl:when test="$candidate = 'o'"> | |
540 <!-- olink target document title --> | |
541 <xsl:apply-templates select="." mode="insert.olink.docname.markup"> | |
542 <xsl:with-param name="purpose" select="$purpose"/> | |
543 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
544 <xsl:with-param name="docname"> | |
545 <xsl:choose> | |
546 <xsl:when test="$docname != ''"> | |
547 <xsl:copy-of select="$docname"/> | |
548 </xsl:when> | |
549 <xsl:otherwise> | |
550 <xsl:apply-templates select="." mode="olink.docname.markup"/> | |
551 </xsl:otherwise> | |
552 </xsl:choose> | |
553 </xsl:with-param> | |
554 </xsl:apply-templates> | |
555 </xsl:when> | |
556 <xsl:when test="$candidate = 'd'"> | |
557 <xsl:apply-templates select="." mode="insert.direction.markup"> | |
558 <xsl:with-param name="purpose" select="$purpose"/> | |
559 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
560 <xsl:with-param name="direction"> | |
561 <xsl:choose> | |
562 <xsl:when test="$referrer"> | |
563 <xsl:variable name="referent-is-below"> | |
564 <xsl:for-each select="preceding::xref"> | |
565 <xsl:if test="generate-id(.) = generate-id($referrer)">1</
xsl:if> | |
566 </xsl:for-each> | |
567 </xsl:variable> | |
568 <xsl:choose> | |
569 <xsl:when test="$referent-is-below = ''"> | |
570 <xsl:call-template name="gentext"> | |
571 <xsl:with-param name="key" select="'above'"/> | |
572 </xsl:call-template> | |
573 </xsl:when> | |
574 <xsl:otherwise> | |
575 <xsl:call-template name="gentext"> | |
576 <xsl:with-param name="key" select="'below'"/> | |
577 </xsl:call-template> | |
578 </xsl:otherwise> | |
579 </xsl:choose> | |
580 </xsl:when> | |
581 <xsl:otherwise> | |
582 <xsl:message>Attempt to use %d in gentext with no referrer!</x
sl:message> | |
583 </xsl:otherwise> | |
584 </xsl:choose> | |
585 </xsl:with-param> | |
586 </xsl:apply-templates> | |
587 </xsl:when> | |
588 <xsl:when test="$candidate = '%' "> | |
589 <xsl:text>%</xsl:text> | |
590 </xsl:when> | |
591 <xsl:otherwise> | |
592 <xsl:text>%</xsl:text><xsl:value-of select="$candidate"/> | |
593 </xsl:otherwise> | |
594 </xsl:choose> | |
595 <!-- recurse with the rest of the template string --> | |
596 <xsl:variable name="rest" | |
597 select="substring($template, | |
598 string-length(substring-before($template, '%'))+3)"/> | |
599 <xsl:call-template name="substitute-markup"> | |
600 <xsl:with-param name="template" select="$rest"/> | |
601 <xsl:with-param name="allow-anchors" select="$allow-anchors"/> | |
602 <xsl:with-param name="title" select="$title"/> | |
603 <xsl:with-param name="subtitle" select="$subtitle"/> | |
604 <xsl:with-param name="docname" select="$docname"/> | |
605 <xsl:with-param name="label" select="$label"/> | |
606 <xsl:with-param name="pagenumber" select="$pagenumber"/> | |
607 <xsl:with-param name="purpose" select="$purpose"/> | |
608 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
609 <xsl:with-param name="referrer" select="$referrer"/> | |
610 <xsl:with-param name="verbose" select="$verbose"/> | |
611 </xsl:call-template> | |
612 </xsl:when> | |
613 <xsl:otherwise> | |
614 <xsl:value-of select="$template"/> | |
615 </xsl:otherwise> | |
616 </xsl:choose> | |
617 </xsl:template> | |
618 | |
619 <!-- ============================================================ --> | |
620 | |
621 <xsl:template name="make.gentext.template"> | |
622 <xsl:param name="xrefstyle" select="''"/> | |
623 <xsl:param name="purpose"/> | |
624 <xsl:param name="referrer"/> | |
625 <xsl:param name="lang"> | |
626 <xsl:call-template name="l10n.language"/> | |
627 </xsl:param> | |
628 <xsl:param name="target.elem" select="local-name(.)"/> | |
629 | |
630 <!-- parse xrefstyle to get parts --> | |
631 <xsl:variable name="parts" | |
632 select="substring-after(normalize-space($xrefstyle), 'select:')"/> | |
633 | |
634 <xsl:variable name="labeltype"> | |
635 <xsl:choose> | |
636 <xsl:when test="contains($parts, 'labelnumber')"> | |
637 <xsl:text>labelnumber</xsl:text> | |
638 </xsl:when> | |
639 <xsl:when test="contains($parts, 'labelname')"> | |
640 <xsl:text>labelname</xsl:text> | |
641 </xsl:when> | |
642 <xsl:when test="contains($parts, 'label')"> | |
643 <xsl:text>label</xsl:text> | |
644 </xsl:when> | |
645 </xsl:choose> | |
646 </xsl:variable> | |
647 | |
648 <xsl:variable name="titletype"> | |
649 <xsl:choose> | |
650 <xsl:when test="contains($parts, 'quotedtitle')"> | |
651 <xsl:text>quotedtitle</xsl:text> | |
652 </xsl:when> | |
653 <xsl:when test="contains($parts, 'title')"> | |
654 <xsl:text>title</xsl:text> | |
655 </xsl:when> | |
656 </xsl:choose> | |
657 </xsl:variable> | |
658 | |
659 <xsl:variable name="pagetype"> | |
660 <xsl:choose> | |
661 <xsl:when test="$insert.olink.page.number = 'no' and | |
662 local-name($referrer) = 'olink'"> | |
663 <!-- suppress page numbers --> | |
664 </xsl:when> | |
665 <xsl:when test="$insert.xref.page.number = 'no' and | |
666 local-name($referrer) != 'olink'"> | |
667 <!-- suppress page numbers --> | |
668 </xsl:when> | |
669 <xsl:when test="contains($parts, 'nopage')"> | |
670 <xsl:text>nopage</xsl:text> | |
671 </xsl:when> | |
672 <xsl:when test="contains($parts, 'pagenumber')"> | |
673 <xsl:text>pagenumber</xsl:text> | |
674 </xsl:when> | |
675 <xsl:when test="contains($parts, 'pageabbrev')"> | |
676 <xsl:text>pageabbrev</xsl:text> | |
677 </xsl:when> | |
678 <xsl:when test="contains($parts, 'Page')"> | |
679 <xsl:text>Page</xsl:text> | |
680 </xsl:when> | |
681 <xsl:when test="contains($parts, 'page')"> | |
682 <xsl:text>page</xsl:text> | |
683 </xsl:when> | |
684 </xsl:choose> | |
685 </xsl:variable> | |
686 | |
687 <xsl:variable name="docnametype"> | |
688 <xsl:choose> | |
689 <xsl:when test="($olink.doctitle = 0 or | |
690 $olink.doctitle = 'no') and | |
691 local-name($referrer) = 'olink'"> | |
692 <!-- suppress docname --> | |
693 </xsl:when> | |
694 <xsl:when test="contains($parts, 'nodocname')"> | |
695 <xsl:text>nodocname</xsl:text> | |
696 </xsl:when> | |
697 <xsl:when test="contains($parts, 'docnamelong')"> | |
698 <xsl:text>docnamelong</xsl:text> | |
699 </xsl:when> | |
700 <xsl:when test="contains($parts, 'docname')"> | |
701 <xsl:text>docname</xsl:text> | |
702 </xsl:when> | |
703 </xsl:choose> | |
704 </xsl:variable> | |
705 | |
706 <xsl:if test="$labeltype != ''"> | |
707 <xsl:choose> | |
708 <xsl:when test="$labeltype = 'labelname'"> | |
709 <xsl:call-template name="gentext"> | |
710 <xsl:with-param name="key"> | |
711 <xsl:choose> | |
712 <xsl:when test="local-name($referrer) = 'olink'"> | |
713 <xsl:value-of select="$target.elem"/> | |
714 </xsl:when> | |
715 <xsl:otherwise> | |
716 <xsl:value-of select="local-name(.)"/> | |
717 </xsl:otherwise> | |
718 </xsl:choose> | |
719 </xsl:with-param> | |
720 </xsl:call-template> | |
721 </xsl:when> | |
722 <xsl:when test="$labeltype = 'labelnumber'"> | |
723 <xsl:text>%n</xsl:text> | |
724 </xsl:when> | |
725 <xsl:when test="$labeltype = 'label'"> | |
726 <xsl:call-template name="gentext.template"> | |
727 <xsl:with-param name="context" select="'xref-number'"/> | |
728 <xsl:with-param name="name"> | |
729 <xsl:choose> | |
730 <xsl:when test="local-name($referrer) = 'olink'"> | |
731 <xsl:value-of select="$target.elem"/> | |
732 </xsl:when> | |
733 <xsl:otherwise> | |
734 <xsl:call-template name="xpath.location"/> | |
735 </xsl:otherwise> | |
736 </xsl:choose> | |
737 </xsl:with-param> | |
738 <xsl:with-param name="purpose" select="$purpose"/> | |
739 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
740 <xsl:with-param name="referrer" select="$referrer"/> | |
741 </xsl:call-template> | |
742 </xsl:when> | |
743 </xsl:choose> | |
744 | |
745 <xsl:choose> | |
746 <xsl:when test="$titletype != ''"> | |
747 <xsl:value-of select="$xref.label-title.separator"/> | |
748 </xsl:when> | |
749 <xsl:when test="$pagetype != '' and $pagetype != 'nopage'"> | |
750 <xsl:value-of select="$xref.label-page.separator"/> | |
751 </xsl:when> | |
752 </xsl:choose> | |
753 </xsl:if> | |
754 | |
755 <xsl:if test="$titletype != ''"> | |
756 <xsl:choose> | |
757 <xsl:when test="$titletype = 'title'"> | |
758 <xsl:text>%t</xsl:text> | |
759 </xsl:when> | |
760 <xsl:when test="$titletype = 'quotedtitle'"> | |
761 <xsl:call-template name="gentext.dingbat"> | |
762 <xsl:with-param name="dingbat" select="'startquote'"/> | |
763 </xsl:call-template> | |
764 <xsl:text>%t</xsl:text> | |
765 <xsl:call-template name="gentext.dingbat"> | |
766 <xsl:with-param name="dingbat" select="'endquote'"/> | |
767 </xsl:call-template> | |
768 </xsl:when> | |
769 </xsl:choose> | |
770 | |
771 <xsl:choose> | |
772 <xsl:when test="$pagetype != '' and $pagetype != 'nopage'"> | |
773 <xsl:value-of select="$xref.title-page.separator"/> | |
774 </xsl:when> | |
775 </xsl:choose> | |
776 </xsl:if> | |
777 | |
778 <!-- special case: use regular xref template if just turning off page --> | |
779 <xsl:if test="($pagetype = 'nopage' or $docnametype = 'nodocname') | |
780 and local-name($referrer) != 'olink' | |
781 and $labeltype = '' | |
782 and $titletype = ''"> | |
783 <xsl:apply-templates select="." mode="object.xref.template"> | |
784 <xsl:with-param name="purpose" select="$purpose"/> | |
785 <xsl:with-param name="xrefstyle" select="$xrefstyle"/> | |
786 <xsl:with-param name="referrer" select="$referrer"/> | |
787 </xsl:apply-templates> | |
788 </xsl:if> | |
789 | |
790 <xsl:if test="$pagetype != ''"> | |
791 <xsl:choose> | |
792 <xsl:when test="$pagetype = 'page'"> | |
793 <xsl:call-template name="gentext.template"> | |
794 <xsl:with-param name="context" select="'xref'"/> | |
795 <xsl:with-param name="name" select="'page'"/> | |
796 </xsl:call-template> | |
797 </xsl:when> | |
798 <xsl:when test="$pagetype = 'Page'"> | |
799 <xsl:call-template name="gentext.template"> | |
800 <xsl:with-param name="context" select="'xref'"/> | |
801 <xsl:with-param name="name" select="'Page'"/> | |
802 </xsl:call-template> | |
803 </xsl:when> | |
804 <xsl:when test="$pagetype = 'pageabbrev'"> | |
805 <xsl:call-template name="gentext.template"> | |
806 <xsl:with-param name="context" select="'xref'"/> | |
807 <xsl:with-param name="name" select="'pageabbrev'"/> | |
808 </xsl:call-template> | |
809 </xsl:when> | |
810 <xsl:when test="$pagetype = 'pagenumber'"> | |
811 <xsl:text>%p</xsl:text> | |
812 </xsl:when> | |
813 </xsl:choose> | |
814 | |
815 </xsl:if> | |
816 | |
817 <!-- Add reference to other document title --> | |
818 <xsl:if test="$docnametype != '' and local-name($referrer) = 'olink'"> | |
819 <!-- Any separator should be in the gentext template --> | |
820 <xsl:choose> | |
821 <xsl:when test="$docnametype = 'docnamelong'"> | |
822 <xsl:call-template name="gentext.template"> | |
823 <xsl:with-param name="context" select="'xref'"/> | |
824 <xsl:with-param name="name" select="'docnamelong'"/> | |
825 </xsl:call-template> | |
826 </xsl:when> | |
827 <xsl:when test="$docnametype = 'docname'"> | |
828 <xsl:call-template name="gentext.template"> | |
829 <xsl:with-param name="context" select="'xref'"/> | |
830 <xsl:with-param name="name" select="'docname'"/> | |
831 </xsl:call-template> | |
832 </xsl:when> | |
833 </xsl:choose> | |
834 | |
835 </xsl:if> | |
836 | |
837 </xsl:template> | |
838 | |
839 </xsl:stylesheet> | |
OLD | NEW |