Jitterbug no more.
[fvwm.git] / doc / docbook-xsl / html / inline.xsl
blob3faeeb3c3046aa7b2464e669ace11169dcc0b187
1 <?xml version='1.0'?>
2 <!DOCTYPE xsl:stylesheet [
3 <!ENTITY comment.block.parents "parent::answer|parent::appendix|parent::article|parent::bibliodiv|
4 parent::bibliography|parent::blockquote|parent::caution|parent::chapter|
5 parent::glossary|parent::glossdiv|parent::important|parent::index|
6 parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|
7 parent::partintro|parent::preface|parent::procedure|parent::qandadiv|
8 parent::qandaset|parent::question|parent::refentry|parent::refnamediv|
9 parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|
10 parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|
11 parent::sect5|parent::section|parent::setindex|parent::sidebar|
12 parent::simplesect|parent::taskprerequisites|parent::taskrelated|
13 parent::tasksummary|parent::warning">
15 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
16 xmlns:xlink='http://www.w3.org/1999/xlink'
17 xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks"
18 exclude-result-prefixes="xlink suwl"
19 version='1.0'>
21 <!-- ********************************************************************
22 $Id: inline.xsl,v 1.1 2007/03/10 05:15:13 scott Exp $
23 ********************************************************************
25 This file is part of the XSL DocBook Stylesheet distribution.
26 See ../README or http://nwalsh.com/docbook/xsl/ for copyright
27 and other information.
29 ******************************************************************** -->
30 <xsl:template name="simple.xlink">
31 <xsl:param name="node" select="."/>
32 <xsl:param name="content">
33 <xsl:apply-templates/>
34 </xsl:param>
35 <xsl:param name="a.target"/>
36 <xsl:param name="linkend" select="$node/@linkend"/>
37 <xsl:param name="xhref" select="$node/@xlink:href"/>
39 <xsl:variable name="link">
40 <xsl:choose>
41 <xsl:when test="$xhref and
42 (not($node/@xlink:type) or
43 $node/@xlink:type='simple')">
45 <!-- Is it a local idref or a uri? -->
46 <xsl:variable name="is.idref">
47 <xsl:choose>
48 <!-- if the href starts with # and does not contain an "(" -->
49 <!-- or if the href starts with #xpointer(id(, it's just an ID -->
50 <xsl:when test="starts-with($xhref,'#')
51 and (not(contains($xhref,'&#40;'))
52 or starts-with($xhref,
53 '#xpointer&#40;id&#40;'))">1</xsl:when>
54 <xsl:otherwise>0</xsl:otherwise>
55 </xsl:choose>
56 </xsl:variable>
58 <xsl:choose>
59 <xsl:when test="$is.idref = 1">
61 <xsl:variable name="idref">
62 <xsl:call-template name="xpointer.idref">
63 <xsl:with-param name="xpointer" select="$xhref"/>
64 </xsl:call-template>
65 </xsl:variable>
67 <xsl:variable name="targets" select="key('id',$idref)"/>
68 <xsl:variable name="target" select="$targets[1]"/>
70 <xsl:call-template name="check.id.unique">
71 <xsl:with-param name="linkend" select="$idref"/>
72 </xsl:call-template>
74 <xsl:choose>
75 <xsl:when test="count($target) = 0">
76 <xsl:message>
77 <xsl:text>XLink to nonexistent id: </xsl:text>
78 <xsl:value-of select="$idref"/>
79 </xsl:message>
80 <xsl:copy-of select="$content"/>
81 </xsl:when>
83 <xsl:otherwise>
84 <a>
85 <xsl:apply-templates select="." mode="class.attribute"/>
87 <xsl:attribute name="href">
88 <xsl:call-template name="href.target">
89 <xsl:with-param name="object" select="$target"/>
90 </xsl:call-template>
91 </xsl:attribute>
93 <xsl:choose>
94 <xsl:when test="$node/@xlink.title">
95 <xsl:attribute name="title">
96 <xsl:value-of select="$node/@xlink:title"/>
97 </xsl:attribute>
98 </xsl:when>
99 <xsl:otherwise>
100 <xsl:apply-templates select="$target"
101 mode="html.title.attribute"/>
102 </xsl:otherwise>
103 </xsl:choose>
105 <xsl:if test="$a.target">
106 <xsl:attribute name="target">
107 <xsl:value-of select="$a.target"/>
108 </xsl:attribute>
109 </xsl:if>
111 <xsl:copy-of select="$content"/>
113 </a>
114 </xsl:otherwise>
115 </xsl:choose>
116 </xsl:when>
118 <!-- otherwise it's a URI -->
119 <xsl:otherwise>
121 <xsl:apply-templates select="." mode="class.attribute"/>
122 <xsl:attribute name="href">
123 <xsl:value-of select="$xhref"/>
124 </xsl:attribute>
125 <xsl:if test="$node/@xlink.title">
126 <xsl:attribute name="title">
127 <xsl:value-of select="$node/@xlink:title"/>
128 </xsl:attribute>
129 </xsl:if>
130 <xsl:copy-of select="$content"/>
131 </a>
132 </xsl:otherwise>
133 </xsl:choose>
134 </xsl:when>
136 <xsl:when test="$linkend">
137 <xsl:variable name="targets" select="key('id',$linkend)"/>
138 <xsl:variable name="target" select="$targets[1]"/>
140 <xsl:call-template name="check.id.unique">
141 <xsl:with-param name="linkend" select="$linkend"/>
142 </xsl:call-template>
145 <xsl:apply-templates select="." mode="class.attribute"/>
146 <xsl:attribute name="href">
147 <xsl:call-template name="href.target">
148 <xsl:with-param name="object" select="$target"/>
149 </xsl:call-template>
150 </xsl:attribute>
152 <xsl:apply-templates select="$target" mode="html.title.attribute"/>
154 <xsl:copy-of select="$content"/>
156 </a>
157 </xsl:when>
158 <xsl:otherwise>
159 <xsl:copy-of select="$content"/>
160 </xsl:otherwise>
161 </xsl:choose>
162 </xsl:variable>
164 <xsl:choose>
165 <xsl:when test="function-available('suwl:unwrapLinks')">
166 <xsl:copy-of select="suwl:unwrapLinks($link)"/>
167 </xsl:when>
168 <xsl:otherwise>
169 <xsl:copy-of select="$link"/>
170 </xsl:otherwise>
171 </xsl:choose>
172 </xsl:template>
174 <xsl:template name="inline.charseq">
175 <xsl:param name="content">
176 <xsl:call-template name="anchor"/>
177 <xsl:call-template name="simple.xlink">
178 <xsl:with-param name="content">
179 <xsl:apply-templates/>
180 </xsl:with-param>
181 </xsl:call-template>
182 </xsl:param>
183 <!-- * if you want output from the inline.charseq template wrapped in -->
184 <!-- * something other than a Span, call the template with some value -->
185 <!-- * for the 'wrapper-name' param -->
186 <xsl:param name="wrapper-name">span</xsl:param>
187 <xsl:element name="{$wrapper-name}">
188 <xsl:attribute name="class">
189 <xsl:value-of select="local-name(.)"/>
190 </xsl:attribute>
191 <xsl:call-template name="dir"/>
192 <xsl:call-template name="generate.html.title"/>
193 <xsl:copy-of select="$content"/>
194 <xsl:call-template name="apply-annotations"/>
195 </xsl:element>
196 </xsl:template>
198 <xsl:template name="inline.monoseq">
199 <xsl:param name="content">
200 <xsl:call-template name="anchor"/>
201 <xsl:call-template name="simple.xlink">
202 <xsl:with-param name="content">
203 <xsl:apply-templates/>
204 </xsl:with-param>
205 </xsl:call-template>
206 </xsl:param>
207 <code>
208 <xsl:apply-templates select="." mode="class.attribute"/>
209 <xsl:call-template name="dir"/>
210 <xsl:call-template name="generate.html.title"/>
211 <xsl:copy-of select="$content"/>
212 <xsl:call-template name="apply-annotations"/>
213 </code>
214 </xsl:template>
216 <xsl:template name="inline.boldseq">
217 <xsl:param name="content">
218 <xsl:call-template name="anchor"/>
219 <xsl:call-template name="simple.xlink">
220 <xsl:with-param name="content">
221 <xsl:apply-templates/>
222 </xsl:with-param>
223 </xsl:call-template>
224 </xsl:param>
226 <span>
227 <xsl:call-template name="generate.html.title"/>
228 <xsl:call-template name="dir"/>
230 <!-- don't put <strong> inside figure, example, or table titles -->
231 <xsl:choose>
232 <xsl:when test="local-name(..) = 'title'
233 and (local-name(../..) = 'figure'
234 or local-name(../..) = 'example'
235 or local-name(../..) = 'table')">
236 <xsl:copy-of select="$content"/>
237 </xsl:when>
238 <xsl:otherwise>
239 <strong>
240 <xsl:apply-templates select="." mode="class.attribute"/>
241 <xsl:copy-of select="$content"/>
242 </strong>
243 </xsl:otherwise>
244 </xsl:choose>
245 <xsl:call-template name="apply-annotations"/>
246 </span>
247 </xsl:template>
249 <xsl:template name="inline.italicseq">
250 <xsl:param name="content">
251 <xsl:call-template name="anchor"/>
252 <xsl:call-template name="simple.xlink">
253 <xsl:with-param name="content">
254 <xsl:apply-templates/>
255 </xsl:with-param>
256 </xsl:call-template>
257 </xsl:param>
258 <em>
259 <xsl:apply-templates select="." mode="class.attribute"/>
260 <xsl:call-template name="generate.html.title"/>
261 <xsl:call-template name="dir"/>
262 <xsl:copy-of select="$content"/>
263 <xsl:call-template name="apply-annotations"/>
264 </em>
265 </xsl:template>
267 <xsl:template name="inline.boldmonoseq">
268 <xsl:param name="content">
269 <xsl:call-template name="anchor"/>
270 <xsl:call-template name="simple.xlink">
271 <xsl:with-param name="content">
272 <xsl:apply-templates/>
273 </xsl:with-param>
274 </xsl:call-template>
275 </xsl:param>
276 <!-- don't put <strong> inside figure, example, or table titles -->
277 <!-- or other titles that may already be represented with <strong>'s. -->
278 <xsl:choose>
279 <xsl:when test="local-name(..) = 'title'
280 and (local-name(../..) = 'figure'
281 or local-name(../..) = 'example'
282 or local-name(../..) = 'table'
283 or local-name(../..) = 'formalpara')">
284 <code>
285 <xsl:apply-templates select="." mode="class.attribute"/>
286 <xsl:call-template name="generate.html.title"/>
287 <xsl:call-template name="dir"/>
288 <xsl:copy-of select="$content"/>
289 <xsl:call-template name="apply-annotations"/>
290 </code>
291 </xsl:when>
292 <xsl:otherwise>
293 <strong>
294 <xsl:apply-templates select="." mode="class.attribute"/>
295 <code>
296 <xsl:call-template name="generate.html.title"/>
297 <xsl:call-template name="dir"/>
298 <xsl:copy-of select="$content"/>
299 </code>
300 <xsl:call-template name="apply-annotations"/>
301 </strong>
302 </xsl:otherwise>
303 </xsl:choose>
304 </xsl:template>
306 <xsl:template name="inline.italicmonoseq">
307 <xsl:param name="content">
308 <xsl:call-template name="anchor"/>
309 <xsl:call-template name="simple.xlink">
310 <xsl:with-param name="content">
311 <xsl:apply-templates/>
312 </xsl:with-param>
313 </xsl:call-template>
314 </xsl:param>
315 <em>
316 <xsl:apply-templates select="." mode="class.attribute"/>
317 <code>
318 <xsl:call-template name="generate.html.title"/>
319 <xsl:call-template name="dir"/>
320 <xsl:copy-of select="$content"/>
321 <xsl:call-template name="apply-annotations"/>
322 </code>
323 </em>
324 </xsl:template>
326 <xsl:template name="inline.superscriptseq">
327 <xsl:param name="content">
328 <xsl:call-template name="anchor"/>
329 <xsl:call-template name="simple.xlink">
330 <xsl:with-param name="content">
331 <xsl:apply-templates/>
332 </xsl:with-param>
333 </xsl:call-template>
334 </xsl:param>
335 <sup>
336 <xsl:call-template name="generate.html.title"/>
337 <xsl:call-template name="dir"/>
338 <xsl:copy-of select="$content"/>
339 <xsl:call-template name="apply-annotations"/>
340 </sup>
341 </xsl:template>
343 <xsl:template name="inline.subscriptseq">
344 <xsl:param name="content">
345 <xsl:call-template name="anchor"/>
346 <xsl:call-template name="simple.xlink">
347 <xsl:with-param name="content">
348 <xsl:apply-templates/>
349 </xsl:with-param>
350 </xsl:call-template>
351 </xsl:param>
352 <sub>
353 <xsl:call-template name="generate.html.title"/>
354 <xsl:call-template name="dir"/>
355 <xsl:copy-of select="$content"/>
356 <xsl:call-template name="apply-annotations"/>
357 </sub>
358 </xsl:template>
360 <!-- ==================================================================== -->
361 <!-- some special cases -->
363 <xsl:template match="author">
364 <xsl:param name="content">
365 <xsl:call-template name="anchor"/>
366 <xsl:call-template name="simple.xlink">
367 <xsl:with-param name="content">
368 <xsl:call-template name="person.name"/>
369 </xsl:with-param>
370 </xsl:call-template>
371 <xsl:call-template name="apply-annotations"/>
372 </xsl:param>
374 <span>
375 <xsl:apply-templates select="." mode="class.attribute"/>
376 <xsl:copy-of select="$content"/>
377 </span>
378 </xsl:template>
380 <xsl:template match="editor">
381 <xsl:param name="content">
382 <xsl:call-template name="anchor"/>
383 <xsl:call-template name="simple.xlink">
384 <xsl:with-param name="content">
385 <xsl:call-template name="person.name"/>
386 </xsl:with-param>
387 </xsl:call-template>
388 <xsl:call-template name="apply-annotations"/>
389 </xsl:param>
391 <span>
392 <xsl:apply-templates select="." mode="class.attribute"/>
393 <xsl:copy-of select="$content"/>
394 </span>
395 </xsl:template>
397 <xsl:template match="othercredit">
398 <xsl:param name="content">
399 <xsl:call-template name="anchor"/>
400 <xsl:call-template name="simple.xlink">
401 <xsl:with-param name="content">
402 <xsl:call-template name="person.name"/>
403 </xsl:with-param>
404 </xsl:call-template>
405 <xsl:call-template name="apply-annotations"/>
406 </xsl:param>
408 <span>
409 <xsl:apply-templates select="." mode="class.attribute"/>
410 <xsl:copy-of select="$content"/>
411 </span>
412 </xsl:template>
414 <xsl:template match="authorinitials">
415 <xsl:call-template name="inline.charseq"/>
416 </xsl:template>
418 <!-- ==================================================================== -->
420 <xsl:template match="accel">
421 <xsl:call-template name="inline.charseq"/>
422 </xsl:template>
424 <xsl:template match="action">
425 <xsl:call-template name="inline.charseq"/>
426 </xsl:template>
428 <xsl:template match="application">
429 <xsl:call-template name="inline.charseq"/>
430 </xsl:template>
432 <xsl:template match="classname">
433 <xsl:call-template name="inline.monoseq"/>
434 </xsl:template>
436 <xsl:template match="exceptionname">
437 <xsl:call-template name="inline.monoseq"/>
438 </xsl:template>
440 <xsl:template match="interfacename">
441 <xsl:call-template name="inline.monoseq"/>
442 </xsl:template>
444 <xsl:template match="methodname">
445 <xsl:call-template name="inline.monoseq"/>
446 </xsl:template>
448 <xsl:template match="command">
449 <xsl:call-template name="inline.boldseq"/>
450 </xsl:template>
452 <xsl:template match="computeroutput">
453 <xsl:call-template name="inline.monoseq"/>
454 </xsl:template>
456 <xsl:template match="constant">
457 <xsl:call-template name="inline.monoseq"/>
458 </xsl:template>
460 <xsl:template match="database">
461 <xsl:call-template name="inline.charseq"/>
462 </xsl:template>
464 <xsl:template match="date">
465 <!-- should this support locale-specific formatting? how? -->
466 <xsl:call-template name="inline.charseq"/>
467 </xsl:template>
469 <xsl:template match="errorcode">
470 <xsl:call-template name="inline.charseq"/>
471 </xsl:template>
473 <xsl:template match="errorname">
474 <xsl:call-template name="inline.charseq"/>
475 </xsl:template>
477 <xsl:template match="errortype">
478 <xsl:call-template name="inline.charseq"/>
479 </xsl:template>
481 <xsl:template match="errortext">
482 <xsl:call-template name="inline.charseq"/>
483 </xsl:template>
485 <xsl:template match="envar">
486 <xsl:call-template name="inline.monoseq"/>
487 </xsl:template>
489 <xsl:template match="filename">
490 <xsl:call-template name="inline.monoseq"/>
491 </xsl:template>
493 <xsl:template match="function">
494 <xsl:choose>
495 <xsl:when test="$function.parens != '0'
496 and (parameter or function or replaceable)">
497 <xsl:variable name="nodes" select="text()|*"/>
498 <xsl:call-template name="inline.monoseq">
499 <xsl:with-param name="content">
500 <xsl:call-template name="simple.xlink">
501 <xsl:with-param name="content">
502 <xsl:apply-templates select="$nodes[1]"/>
503 </xsl:with-param>
504 </xsl:call-template>
505 </xsl:with-param>
506 </xsl:call-template>
507 <xsl:text>(</xsl:text>
508 <xsl:apply-templates select="$nodes[position()>1]"/>
509 <xsl:text>)</xsl:text>
510 </xsl:when>
511 <xsl:otherwise>
512 <xsl:call-template name="inline.monoseq"/>
513 </xsl:otherwise>
514 </xsl:choose>
515 </xsl:template>
517 <xsl:template match="function/parameter" priority="2">
518 <xsl:call-template name="inline.italicmonoseq"/>
519 <xsl:if test="following-sibling::*">
520 <xsl:text>, </xsl:text>
521 </xsl:if>
522 </xsl:template>
524 <xsl:template match="function/replaceable" priority="2">
525 <xsl:call-template name="inline.italicmonoseq"/>
526 <xsl:if test="following-sibling::*">
527 <xsl:text>, </xsl:text>
528 </xsl:if>
529 </xsl:template>
531 <xsl:template match="guibutton">
532 <xsl:call-template name="inline.charseq"/>
533 </xsl:template>
535 <xsl:template match="guiicon">
536 <xsl:call-template name="inline.charseq"/>
537 </xsl:template>
539 <xsl:template match="guilabel">
540 <xsl:call-template name="inline.charseq"/>
541 </xsl:template>
543 <xsl:template match="guimenu">
544 <xsl:call-template name="inline.charseq"/>
545 </xsl:template>
547 <xsl:template match="guimenuitem">
548 <xsl:call-template name="inline.charseq"/>
549 </xsl:template>
551 <xsl:template match="guisubmenu">
552 <xsl:call-template name="inline.charseq"/>
553 </xsl:template>
555 <xsl:template match="hardware">
556 <xsl:call-template name="inline.charseq"/>
557 </xsl:template>
559 <xsl:template match="interface">
560 <xsl:call-template name="inline.charseq"/>
561 </xsl:template>
563 <xsl:template match="interfacedefinition">
564 <xsl:call-template name="inline.charseq"/>
565 </xsl:template>
567 <xsl:template match="keycap">
568 <xsl:call-template name="inline.boldseq"/>
569 </xsl:template>
571 <xsl:template match="keycode">
572 <xsl:call-template name="inline.charseq"/>
573 </xsl:template>
575 <xsl:template match="keysym">
576 <xsl:call-template name="inline.charseq"/>
577 </xsl:template>
579 <xsl:template match="literal">
580 <xsl:call-template name="inline.monoseq"/>
581 </xsl:template>
583 <xsl:template match="code">
584 <xsl:call-template name="inline.monoseq"/>
585 </xsl:template>
587 <xsl:template match="medialabel">
588 <xsl:call-template name="inline.italicseq"/>
589 </xsl:template>
591 <xsl:template match="shortcut">
592 <xsl:call-template name="inline.boldseq"/>
593 </xsl:template>
595 <xsl:template match="mousebutton">
596 <xsl:call-template name="inline.charseq"/>
597 </xsl:template>
599 <xsl:template match="option">
600 <xsl:call-template name="inline.monoseq"/>
601 </xsl:template>
603 <xsl:template match="package">
604 <xsl:call-template name="inline.charseq"/>
605 </xsl:template>
607 <xsl:template match="parameter">
608 <xsl:call-template name="inline.italicmonoseq"/>
609 </xsl:template>
611 <xsl:template match="property">
612 <xsl:call-template name="inline.charseq"/>
613 </xsl:template>
615 <xsl:template match="prompt">
616 <xsl:call-template name="inline.monoseq"/>
617 </xsl:template>
619 <xsl:template match="replaceable" priority="1">
620 <xsl:call-template name="inline.italicmonoseq"/>
621 </xsl:template>
623 <xsl:template match="returnvalue">
624 <xsl:call-template name="inline.charseq"/>
625 </xsl:template>
627 <xsl:template match="structfield">
628 <xsl:call-template name="inline.italicmonoseq"/>
629 </xsl:template>
631 <xsl:template match="structname">
632 <xsl:call-template name="inline.charseq"/>
633 </xsl:template>
635 <xsl:template match="symbol">
636 <xsl:call-template name="inline.charseq"/>
637 </xsl:template>
639 <xsl:template match="systemitem">
640 <xsl:call-template name="inline.monoseq"/>
641 </xsl:template>
643 <xsl:template match="token">
644 <xsl:call-template name="inline.charseq"/>
645 </xsl:template>
647 <xsl:template match="type">
648 <xsl:call-template name="inline.charseq"/>
649 </xsl:template>
651 <xsl:template match="userinput">
652 <xsl:call-template name="inline.boldmonoseq"/>
653 </xsl:template>
655 <xsl:template match="abbrev">
656 <xsl:call-template name="inline.charseq">
657 <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
658 </xsl:call-template>
659 </xsl:template>
661 <xsl:template match="acronym">
662 <xsl:call-template name="inline.charseq">
663 <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
664 </xsl:call-template>
665 </xsl:template>
667 <xsl:template match="citerefentry">
668 <xsl:choose>
669 <xsl:when test="$citerefentry.link != '0'">
671 <xsl:apply-templates select="." mode="class.attribute"/>
672 <xsl:attribute name="href">
673 <xsl:call-template name="generate.citerefentry.link"/>
674 </xsl:attribute>
675 <xsl:call-template name="inline.charseq"/>
676 </a>
677 </xsl:when>
678 <xsl:otherwise>
679 <xsl:call-template name="inline.charseq"/>
680 </xsl:otherwise>
681 </xsl:choose>
682 </xsl:template>
684 <xsl:template name="generate.citerefentry.link">
685 <!-- nop -->
686 </xsl:template>
688 <xsl:template name="x.generate.citerefentry.link">
689 <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
690 <xsl:value-of select="refentrytitle"/>
691 <xsl:text>(</xsl:text>
692 <xsl:value-of select="manvolnum"/>
693 <xsl:text>)</xsl:text>
694 </xsl:template>
696 <xsl:template match="citetitle">
697 <xsl:choose>
698 <xsl:when test="@pubwork = 'article'">
699 <xsl:call-template name="gentext.startquote"/>
700 <xsl:call-template name="inline.charseq"/>
701 <xsl:call-template name="gentext.endquote"/>
702 </xsl:when>
703 <xsl:otherwise>
704 <xsl:call-template name="inline.italicseq"/>
705 </xsl:otherwise>
706 </xsl:choose>
707 </xsl:template>
709 <xsl:template match="emphasis">
710 <span>
711 <xsl:choose>
712 <xsl:when test="@role and $emphasis.propagates.style != 0">
713 <xsl:apply-templates select="." mode="class.attribute">
714 <xsl:with-param name="class" select="@role"/>
715 </xsl:apply-templates>
716 </xsl:when>
717 <xsl:otherwise>
718 <xsl:attribute name="class">
719 <xsl:text>emphasis</xsl:text>
720 </xsl:attribute>
721 </xsl:otherwise>
722 </xsl:choose>
723 <xsl:call-template name="anchor"/>
725 <xsl:call-template name="simple.xlink">
726 <xsl:with-param name="content">
727 <xsl:choose>
728 <xsl:when test="@role = 'bold' or @role='strong'">
729 <!-- backwards compatibility: make bold into b elements, but -->
730 <!-- don't put bold inside figure, example, or table titles -->
731 <xsl:choose>
732 <xsl:when test="local-name(..) = 'title'
733 and (local-name(../..) = 'figure'
734 or local-name(../..) = 'example'
735 or local-name(../..) = 'table')">
736 <xsl:apply-templates/>
737 </xsl:when>
738 <xsl:otherwise>
739 <strong><xsl:apply-templates/></strong>
740 </xsl:otherwise>
741 </xsl:choose>
742 </xsl:when>
743 <xsl:when test="@role and $emphasis.propagates.style != 0">
744 <xsl:apply-templates/>
745 </xsl:when>
746 <xsl:otherwise>
747 <em><xsl:apply-templates/></em>
748 </xsl:otherwise>
749 </xsl:choose>
750 </xsl:with-param>
751 </xsl:call-template>
752 </span>
753 </xsl:template>
755 <xsl:template match="foreignphrase">
756 <span>
757 <xsl:apply-templates select="." mode="class.attribute"/>
758 <xsl:if test="@lang or @xml:lang">
759 <xsl:call-template name="language.attribute"/>
760 </xsl:if>
761 <xsl:call-template name="inline.italicseq"/>
762 </span>
763 </xsl:template>
765 <xsl:template match="markup">
766 <xsl:call-template name="inline.charseq"/>
767 </xsl:template>
769 <xsl:template match="phrase">
770 <span>
771 <xsl:call-template name="generate.html.title"/>
772 <xsl:if test="@lang or @xml:lang">
773 <xsl:call-template name="language.attribute"/>
774 </xsl:if>
775 <xsl:if test="@role and $phrase.propagates.style != 0">
776 <xsl:apply-templates select="." mode="class.attribute">
777 <xsl:with-param name="class" select="@role"/>
778 </xsl:apply-templates>
779 </xsl:if>
780 <xsl:call-template name="dir"/>
781 <xsl:call-template name="anchor"/>
782 <xsl:call-template name="simple.xlink">
783 <xsl:with-param name="content">
784 <xsl:apply-templates/>
785 </xsl:with-param>
786 </xsl:call-template>
787 <xsl:call-template name="apply-annotations"/>
788 </span>
789 </xsl:template>
791 <xsl:template match="quote">
792 <xsl:variable name="depth">
793 <xsl:call-template name="dot.count">
794 <xsl:with-param name="string">
795 <xsl:number level="multiple"/>
796 </xsl:with-param>
797 </xsl:call-template>
798 </xsl:variable>
799 <xsl:choose>
800 <xsl:when test="$depth mod 2 = 0">
801 <xsl:call-template name="gentext.startquote"/>
802 <xsl:call-template name="inline.charseq"/>
803 <xsl:call-template name="gentext.endquote"/>
804 </xsl:when>
805 <xsl:otherwise>
806 <xsl:call-template name="gentext.nestedstartquote"/>
807 <xsl:call-template name="inline.charseq"/>
808 <xsl:call-template name="gentext.nestedendquote"/>
809 </xsl:otherwise>
810 </xsl:choose>
811 </xsl:template>
813 <xsl:template match="varname">
814 <xsl:call-template name="inline.monoseq"/>
815 </xsl:template>
817 <xsl:template match="wordasword">
818 <xsl:call-template name="inline.italicseq"/>
819 </xsl:template>
821 <xsl:template match="lineannotation">
822 <em>
823 <xsl:apply-templates select="." mode="class.attribute"/>
824 <xsl:call-template name="inline.charseq"/>
825 </em>
826 </xsl:template>
828 <xsl:template match="superscript">
829 <xsl:call-template name="inline.superscriptseq"/>
830 </xsl:template>
832 <xsl:template match="subscript">
833 <xsl:call-template name="inline.subscriptseq"/>
834 </xsl:template>
836 <xsl:template match="trademark">
837 <xsl:call-template name="inline.charseq"/>
838 <xsl:choose>
839 <xsl:when test="@class = 'copyright'
840 or @class = 'registered'">
841 <xsl:call-template name="dingbat">
842 <xsl:with-param name="dingbat" select="@class"/>
843 </xsl:call-template>
844 </xsl:when>
845 <xsl:when test="@class = 'service'">
846 <sup>SM</sup>
847 </xsl:when>
848 <xsl:otherwise>
849 <xsl:call-template name="dingbat">
850 <xsl:with-param name="dingbat" select="'trademark'"/>
851 </xsl:call-template>
852 </xsl:otherwise>
853 </xsl:choose>
854 </xsl:template>
856 <xsl:template match="firstterm">
857 <xsl:call-template name="glossterm">
858 <xsl:with-param name="firstterm" select="1"/>
859 </xsl:call-template>
860 </xsl:template>
862 <xsl:template match="glossterm" name="glossterm">
863 <xsl:param name="firstterm" select="0"/>
865 <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
866 <xsl:variable name="content">
867 <xsl:apply-templates/>
868 </xsl:variable>
870 <xsl:choose>
871 <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
872 <xsl:variable name="targets" select="key('id',@linkend)"/>
873 <xsl:variable name="target" select="$targets[1]"/>
875 <xsl:call-template name="check.id.unique">
876 <xsl:with-param name="linkend" select="@linkend"/>
877 </xsl:call-template>
879 <xsl:choose>
880 <xsl:when test="$target">
882 <xsl:apply-templates select="." mode="class.attribute"/>
883 <xsl:if test="@id or @xml:id">
884 <xsl:attribute name="name">
885 <xsl:value-of select="(@id|@xml:id)[1]"/>
886 </xsl:attribute>
887 </xsl:if>
889 <xsl:attribute name="href">
890 <xsl:call-template name="href.target">
891 <xsl:with-param name="object" select="$target"/>
892 </xsl:call-template>
893 </xsl:attribute>
895 <xsl:call-template name="inline.italicseq">
896 <xsl:with-param name="content" select="$content"/>
897 </xsl:call-template>
898 </a>
899 </xsl:when>
900 <xsl:otherwise>
901 <xsl:call-template name="inline.italicseq">
902 <xsl:with-param name="content" select="$content"/>
903 </xsl:call-template>
904 </xsl:otherwise>
905 </xsl:choose>
906 </xsl:when>
908 <xsl:when test="not(@linkend)
909 and ($firstterm.only.link = 0 or $firstterm = 1)
910 and ($glossterm.auto.link != 0)
911 and $glossary.collection != ''">
912 <xsl:variable name="term">
913 <xsl:choose>
914 <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
915 <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
916 </xsl:choose>
917 </xsl:variable>
919 <xsl:variable name="cterm"
920 select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
922 <!-- HACK HACK HACK! But it works... -->
923 <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
925 <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
927 <xsl:if test="count($glossary) != 1">
928 <xsl:message>
929 <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
930 <xsl:value-of select="count($glossary)"/>
931 <xsl:text> automatic glossaries</xsl:text>
932 </xsl:message>
933 </xsl:if>
935 <xsl:variable name="glosschunk">
936 <xsl:call-template name="href.target">
937 <xsl:with-param name="object" select="$glossary"/>
938 </xsl:call-template>
939 </xsl:variable>
941 <xsl:variable name="chunkbase">
942 <xsl:choose>
943 <xsl:when test="contains($glosschunk, '#')">
944 <xsl:value-of select="substring-before($glosschunk, '#')"/>
945 </xsl:when>
946 <xsl:otherwise>
947 <xsl:value-of select="$glosschunk"/>
948 </xsl:otherwise>
949 </xsl:choose>
950 </xsl:variable>
952 <xsl:choose>
953 <xsl:when test="not($cterm)">
954 <xsl:message>
955 <xsl:text>There's no entry for </xsl:text>
956 <xsl:value-of select="$term"/>
957 <xsl:text> in </xsl:text>
958 <xsl:value-of select="$glossary.collection"/>
959 </xsl:message>
960 <xsl:call-template name="inline.italicseq"/>
961 </xsl:when>
962 <xsl:otherwise>
963 <xsl:variable name="id">
964 <xsl:call-template name="object.id">
965 <xsl:with-param name="object" select="$cterm"/>
966 </xsl:call-template>
967 </xsl:variable>
968 <a href="{$chunkbase}#{$id}">
969 <xsl:apply-templates select="." mode="class.attribute"/>
970 <xsl:call-template name="inline.italicseq">
971 <xsl:with-param name="content" select="$content"/>
972 </xsl:call-template>
973 </a>
974 </xsl:otherwise>
975 </xsl:choose>
976 </xsl:when>
978 <xsl:when test="not(@linkend)
979 and ($firstterm.only.link = 0 or $firstterm = 1)
980 and $glossterm.auto.link != 0">
981 <xsl:variable name="term">
982 <xsl:choose>
983 <xsl:when test="@baseform">
984 <xsl:value-of select="normalize-space(@baseform)"/>
985 </xsl:when>
986 <xsl:otherwise>
987 <xsl:value-of select="normalize-space(.)"/>
988 </xsl:otherwise>
989 </xsl:choose>
990 </xsl:variable>
991 <xsl:variable name="targets"
992 select="//glossentry[normalize-space(glossterm)=$term
993 or normalize-space(glossterm/@baseform)=$term]"/>
994 <xsl:variable name="target" select="$targets[1]"/>
996 <xsl:choose>
997 <xsl:when test="count($targets)=0">
998 <xsl:message>
999 <xsl:text>Error: no glossentry for glossterm: </xsl:text>
1000 <xsl:value-of select="."/>
1001 <xsl:text>.</xsl:text>
1002 </xsl:message>
1003 <xsl:call-template name="inline.italicseq"/>
1004 </xsl:when>
1005 <xsl:otherwise>
1007 <xsl:apply-templates select="." mode="class.attribute"/>
1008 <xsl:if test="@id or @xml:id">
1009 <xsl:attribute name="name">
1010 <xsl:value-of select="(@id|@xml:id)[1]"/>
1011 </xsl:attribute>
1012 </xsl:if>
1014 <xsl:attribute name="href">
1015 <xsl:call-template name="href.target">
1016 <xsl:with-param name="object" select="$target"/>
1017 </xsl:call-template>
1018 </xsl:attribute>
1020 <xsl:call-template name="inline.italicseq">
1021 <xsl:with-param name="content" select="$content"/>
1022 </xsl:call-template>
1023 </a>
1024 </xsl:otherwise>
1025 </xsl:choose>
1026 </xsl:when>
1028 <xsl:otherwise>
1029 <xsl:call-template name="inline.italicseq"/>
1030 </xsl:otherwise>
1031 </xsl:choose>
1032 </xsl:template>
1034 <xsl:template match="termdef">
1035 <span>
1036 <xsl:apply-templates select="." mode="class.attribute"/>
1037 <xsl:call-template name="generate.html.title"/>
1038 <xsl:call-template name="gentext.template">
1039 <xsl:with-param name="context" select="'termdef'"/>
1040 <xsl:with-param name="name" select="'prefix'"/>
1041 </xsl:call-template>
1042 <xsl:apply-templates/>
1043 <xsl:call-template name="gentext.template">
1044 <xsl:with-param name="context" select="'termdef'"/>
1045 <xsl:with-param name="name" select="'suffix'"/>
1046 </xsl:call-template>
1047 </span>
1048 </xsl:template>
1050 <xsl:template match="sgmltag|tag">
1051 <xsl:call-template name="format.sgmltag"/>
1052 </xsl:template>
1054 <xsl:template name="format.sgmltag">
1055 <xsl:param name="class">
1056 <xsl:choose>
1057 <xsl:when test="@class">
1058 <xsl:value-of select="@class"/>
1059 </xsl:when>
1060 <xsl:otherwise>element</xsl:otherwise>
1061 </xsl:choose>
1062 </xsl:param>
1064 <xsl:variable name="content">
1065 <xsl:choose>
1066 <xsl:when test="$class='attribute'">
1067 <xsl:apply-templates/>
1068 </xsl:when>
1069 <xsl:when test="$class='attvalue'">
1070 <xsl:apply-templates/>
1071 </xsl:when>
1072 <xsl:when test="$class='element'">
1073 <xsl:apply-templates/>
1074 </xsl:when>
1075 <xsl:when test="$class='endtag'">
1076 <xsl:text>&lt;/</xsl:text>
1077 <xsl:apply-templates/>
1078 <xsl:text>&gt;</xsl:text>
1079 </xsl:when>
1080 <xsl:when test="$class='genentity'">
1081 <xsl:text>&amp;</xsl:text>
1082 <xsl:apply-templates/>
1083 <xsl:text>;</xsl:text>
1084 </xsl:when>
1085 <xsl:when test="$class='numcharref'">
1086 <xsl:text>&amp;#</xsl:text>
1087 <xsl:apply-templates/>
1088 <xsl:text>;</xsl:text>
1089 </xsl:when>
1090 <xsl:when test="$class='paramentity'">
1091 <xsl:text>%</xsl:text>
1092 <xsl:apply-templates/>
1093 <xsl:text>;</xsl:text>
1094 </xsl:when>
1095 <xsl:when test="$class='pi'">
1096 <xsl:text>&lt;?</xsl:text>
1097 <xsl:apply-templates/>
1098 <xsl:text>&gt;</xsl:text>
1099 </xsl:when>
1100 <xsl:when test="$class='xmlpi'">
1101 <xsl:text>&lt;?</xsl:text>
1102 <xsl:apply-templates/>
1103 <xsl:text>?&gt;</xsl:text>
1104 </xsl:when>
1105 <xsl:when test="$class='starttag'">
1106 <xsl:text>&lt;</xsl:text>
1107 <xsl:apply-templates/>
1108 <xsl:text>&gt;</xsl:text>
1109 </xsl:when>
1110 <xsl:when test="$class='emptytag'">
1111 <xsl:text>&lt;</xsl:text>
1112 <xsl:apply-templates/>
1113 <xsl:text>/&gt;</xsl:text>
1114 </xsl:when>
1115 <xsl:when test="$class='sgmlcomment' or $class='comment'">
1116 <xsl:text>&lt;!--</xsl:text>
1117 <xsl:apply-templates/>
1118 <xsl:text>--&gt;</xsl:text>
1119 </xsl:when>
1120 <xsl:otherwise>
1121 <xsl:apply-templates/>
1122 </xsl:otherwise>
1123 </xsl:choose>
1124 </xsl:variable>
1126 <code>
1127 <xsl:apply-templates select="." mode="class.attribute">
1128 <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
1129 </xsl:apply-templates>
1130 <xsl:call-template name="generate.html.title"/>
1131 <xsl:call-template name="simple.xlink">
1132 <xsl:with-param name="content" select="$content"/>
1133 </xsl:call-template>
1134 </code>
1135 </xsl:template>
1137 <xsl:template match="email">
1138 <xsl:call-template name="inline.monoseq">
1139 <xsl:with-param name="content">
1140 <xsl:if test="not($email.delimiters.enabled = 0)">
1141 <xsl:text>&lt;</xsl:text>
1142 </xsl:if>
1144 <xsl:apply-templates select="." mode="class.attribute"/>
1145 <xsl:attribute name="href">
1146 <xsl:text>mailto:</xsl:text>
1147 <xsl:value-of select="."/>
1148 </xsl:attribute>
1149 <xsl:apply-templates/>
1150 </a>
1151 <xsl:if test="not($email.delimiters.enabled = 0)">
1152 <xsl:text>&gt;</xsl:text>
1153 </xsl:if>
1154 </xsl:with-param>
1155 </xsl:call-template>
1156 </xsl:template>
1158 <xsl:template match="keycombo">
1159 <xsl:variable name="action" select="@action"/>
1160 <xsl:variable name="joinchar">
1161 <xsl:choose>
1162 <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
1163 <xsl:when test="$action='simul'">+</xsl:when>
1164 <xsl:when test="$action='press'">-</xsl:when>
1165 <xsl:when test="$action='click'">-</xsl:when>
1166 <xsl:when test="$action='double-click'">-</xsl:when>
1167 <xsl:when test="$action='other'"></xsl:when>
1168 <xsl:otherwise>-</xsl:otherwise>
1169 </xsl:choose>
1170 </xsl:variable>
1171 <xsl:for-each select="*">
1172 <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
1173 <xsl:apply-templates select="."/>
1174 </xsl:for-each>
1175 </xsl:template>
1177 <xsl:template match="uri">
1178 <xsl:call-template name="inline.monoseq"/>
1179 </xsl:template>
1181 <!-- ==================================================================== -->
1183 <xsl:template match="menuchoice">
1184 <xsl:variable name="shortcut" select="./shortcut"/>
1185 <xsl:call-template name="process.menuchoice"/>
1186 <xsl:if test="$shortcut">
1187 <xsl:text> (</xsl:text>
1188 <xsl:apply-templates select="$shortcut"/>
1189 <xsl:text>)</xsl:text>
1190 </xsl:if>
1191 </xsl:template>
1193 <xsl:template name="process.menuchoice">
1194 <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
1195 <xsl:param name="count" select="1"/>
1197 <xsl:choose>
1198 <xsl:when test="$count>count($nodelist)"></xsl:when>
1199 <xsl:when test="$count=1">
1200 <xsl:apply-templates select="$nodelist[$count=position()]"/>
1201 <xsl:call-template name="process.menuchoice">
1202 <xsl:with-param name="nodelist" select="$nodelist"/>
1203 <xsl:with-param name="count" select="$count+1"/>
1204 </xsl:call-template>
1205 </xsl:when>
1206 <xsl:otherwise>
1207 <xsl:variable name="node" select="$nodelist[$count=position()]"/>
1208 <xsl:choose>
1209 <xsl:when test="local-name($node)='guimenuitem'
1210 or local-name($node)='guisubmenu'">
1211 <xsl:value-of select="$menuchoice.menu.separator"/>
1212 </xsl:when>
1213 <xsl:otherwise>
1214 <xsl:value-of select="$menuchoice.separator"/>
1215 </xsl:otherwise>
1216 </xsl:choose>
1217 <xsl:apply-templates select="$node"/>
1218 <xsl:call-template name="process.menuchoice">
1219 <xsl:with-param name="nodelist" select="$nodelist"/>
1220 <xsl:with-param name="count" select="$count+1"/>
1221 </xsl:call-template>
1222 </xsl:otherwise>
1223 </xsl:choose>
1224 </xsl:template>
1226 <!-- ==================================================================== -->
1228 <xsl:template match="optional">
1229 <xsl:value-of select="$arg.choice.opt.open.str"/>
1230 <xsl:call-template name="inline.charseq"/>
1231 <xsl:value-of select="$arg.choice.opt.close.str"/>
1232 </xsl:template>
1234 <xsl:template match="citation">
1235 <!-- todo: integrate with bibliography collection -->
1236 <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
1237 <xsl:variable name="target" select="$targets[1]"/>
1239 <xsl:choose>
1240 <!-- try automatic linking based on match to abbrev -->
1241 <xsl:when test="$target and not(xref) and not(link)">
1243 <xsl:text>[</xsl:text>
1245 <xsl:apply-templates select="." mode="class.attribute"/>
1246 <xsl:attribute name="href">
1247 <xsl:call-template name="href.target">
1248 <xsl:with-param name="object" select="$target"/>
1249 </xsl:call-template>
1250 </xsl:attribute>
1252 <xsl:call-template name="inline.charseq"/>
1253 </a>
1254 <xsl:text>]</xsl:text>
1255 </xsl:when>
1256 <xsl:otherwise>
1257 <xsl:text>[</xsl:text>
1258 <xsl:call-template name="inline.charseq"/>
1259 <xsl:text>]</xsl:text>
1260 </xsl:otherwise>
1261 </xsl:choose>
1262 </xsl:template>
1264 <!-- ==================================================================== -->
1266 <xsl:template match="comment[&comment.block.parents;]|remark[&comment.block.parents;]">
1267 <xsl:if test="$show.comments != 0">
1268 <p class="remark"><i><xsl:call-template name="inline.charseq"/></i></p>
1269 </xsl:if>
1270 </xsl:template>
1272 <xsl:template match="comment|remark">
1273 <xsl:if test="$show.comments != 0">
1274 <em><xsl:call-template name="inline.charseq"/></em>
1275 </xsl:if>
1276 </xsl:template>
1278 <!-- ==================================================================== -->
1280 <xsl:template match="productname">
1281 <xsl:call-template name="inline.charseq"/>
1282 <xsl:if test="@class">
1283 <xsl:call-template name="dingbat">
1284 <xsl:with-param name="dingbat" select="@class"/>
1285 </xsl:call-template>
1286 </xsl:if>
1287 </xsl:template>
1289 <xsl:template match="productnumber">
1290 <xsl:call-template name="inline.charseq"/>
1291 </xsl:template>
1293 <!-- ==================================================================== -->
1295 <xsl:template match="pob|street|city|state|postcode|country|otheraddr">
1296 <xsl:call-template name="inline.charseq"/>
1297 </xsl:template>
1299 <xsl:template match="phone|fax">
1300 <xsl:call-template name="inline.charseq"/>
1301 </xsl:template>
1303 <!-- in Addresses, for example -->
1304 <xsl:template match="honorific|firstname|surname|lineage|othername">
1305 <xsl:call-template name="inline.charseq"/>
1306 </xsl:template>
1308 <!-- ==================================================================== -->
1310 <xsl:template match="person">
1311 <xsl:param name="content">
1312 <xsl:call-template name="anchor"/>
1313 <xsl:call-template name="simple.xlink">
1314 <xsl:with-param name="content">
1315 <xsl:apply-templates select="personname"/>
1316 </xsl:with-param>
1317 </xsl:call-template>
1318 <xsl:call-template name="apply-annotations"/>
1319 </xsl:param>
1321 <span>
1322 <xsl:apply-templates select="." mode="class.attribute"/>
1323 <xsl:copy-of select="$content"/>
1324 </span>
1325 </xsl:template>
1327 <xsl:template match="personname">
1328 <xsl:param name="content">
1329 <xsl:call-template name="anchor"/>
1330 <xsl:call-template name="simple.xlink">
1331 <xsl:with-param name="content">
1332 <xsl:call-template name="person.name"/>
1333 </xsl:with-param>
1334 </xsl:call-template>
1335 <xsl:call-template name="apply-annotations"/>
1336 </xsl:param>
1338 <span>
1339 <xsl:apply-templates select="." mode="class.attribute"/>
1340 <xsl:copy-of select="$content"/>
1341 </span>
1342 </xsl:template>
1344 <!-- ==================================================================== -->
1346 <xsl:template match="org">
1347 <xsl:param name="content">
1348 <xsl:call-template name="anchor"/>
1349 <xsl:call-template name="simple.xlink">
1350 <xsl:with-param name="content">
1351 <xsl:apply-templates/>
1352 </xsl:with-param>
1353 </xsl:call-template>
1354 <xsl:call-template name="apply-annotations"/>
1355 </xsl:param>
1357 <span>
1358 <xsl:apply-templates select="." mode="class.attribute"/>
1359 <xsl:copy-of select="$content"/>
1360 </span>
1361 </xsl:template>
1363 <xsl:template match="orgname">
1364 <xsl:param name="content">
1365 <xsl:call-template name="anchor"/>
1366 <xsl:call-template name="simple.xlink">
1367 <xsl:with-param name="content">
1368 <xsl:apply-templates/>
1369 </xsl:with-param>
1370 </xsl:call-template>
1371 <xsl:call-template name="apply-annotations"/>
1372 </xsl:param>
1374 <span>
1375 <xsl:apply-templates select="." mode="class.attribute"/>
1376 <xsl:copy-of select="$content"/>
1377 </span>
1378 </xsl:template>
1380 <xsl:template match="orgdiv">
1381 <xsl:param name="content">
1382 <xsl:call-template name="anchor"/>
1383 <xsl:call-template name="simple.xlink">
1384 <xsl:with-param name="content">
1385 <xsl:apply-templates/>
1386 </xsl:with-param>
1387 </xsl:call-template>
1388 <xsl:call-template name="apply-annotations"/>
1389 </xsl:param>
1391 <span>
1392 <xsl:apply-templates select="." mode="class.attribute"/>
1393 <xsl:copy-of select="$content"/>
1394 </span>
1395 </xsl:template>
1397 <xsl:template match="affiliation">
1398 <xsl:param name="content">
1399 <xsl:call-template name="anchor"/>
1400 <xsl:call-template name="simple.xlink">
1401 <xsl:with-param name="content">
1402 <xsl:call-template name="person.name"/>
1403 </xsl:with-param>
1404 </xsl:call-template>
1405 <xsl:call-template name="apply-annotations"/>
1406 </xsl:param>
1408 <span>
1409 <xsl:apply-templates select="." mode="class.attribute"/>
1410 <xsl:copy-of select="$content"/>
1411 </span>
1412 </xsl:template>
1414 <!-- ==================================================================== -->
1416 <xsl:template match="beginpage">
1417 <!-- does nothing; this *is not* markup to force a page break. -->
1418 </xsl:template>
1420 </xsl:stylesheet>