Statistics
| Revision:

root / tmp / org.txm.core / res / org / txm / xml / xsl / tei / xhtml2 / core.xsl @ 187

History | View | Annotate | Download (94.3 kB)

1
<?xml version="1.0" encoding="utf-8"?>
2
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:teidocx="http://www.tei-c.org/ns/teidocx/1.0" exclude-result-prefixes="a fo html rng tei teix teidocx" version="2.0">
3
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl" scope="stylesheet" type="stylesheet">
4
    <desc>
5
      <p> TEI stylesheet dealing with elements from the core module, making
6
      HTML output. </p>
7
      <p>This software is dual-licensed:
8

    
9
1. Distributed under a Creative Commons Attribution-ShareAlike 3.0
10
Unported License http://creativecommons.org/licenses/by-sa/3.0/ 
11

    
12
2. http://www.opensource.org/licenses/BSD-2-Clause
13
		
14
All rights reserved.
15

    
16
Redistribution and use in source and binary forms, with or without
17
modification, are permitted provided that the following conditions are
18
met:
19

    
20
* Redistributions of source code must retain the above copyright
21
notice, this list of conditions and the following disclaimer.
22

    
23
* Redistributions in binary form must reproduce the above copyright
24
notice, this list of conditions and the following disclaimer in the
25
documentation and/or other materials provided with the distribution.
26

    
27
This software is provided by the copyright holders and contributors
28
"as is" and any express or implied warranties, including, but not
29
limited to, the implied warranties of merchantability and fitness for
30
a particular purpose are disclaimed. In no event shall the copyright
31
holder or contributors be liable for any direct, indirect, incidental,
32
special, exemplary, or consequential damages (including, but not
33
limited to, procurement of substitute goods or services; loss of use,
34
data, or profits; or business interruption) however caused and on any
35
theory of liability, whether in contract, strict liability, or tort
36
(including negligence or otherwise) arising in any way out of the use
37
of this software, even if advised of the possibility of such damage.
38
</p>
39
      <p>Author: See AUTHORS</p>
40
      <p>Id: $Id: core.xsl 10058 2012-01-22 12:51:37Z rahtz $</p>
41
      <p>Copyright: 2011, TEI Consortium</p>
42
    </desc>
43
  </doc>
44
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
45
    <desc>
46
      <p>Process elements tei:*</p>
47
      <p>
48
        <p xmlns="http://www.w3.org/1999/xhtml"> anything with a head can go in the TOC </p>
49
      </p>
50
      <param name="forcedepth">forcedepth</param>
51
    </desc>
52
  </doc>
53
  <xsl:template match="tei:*" mode="maketoc">
54
    <xsl:param name="forcedepth"/>
55
    <xsl:variable name="myName">
56
      <xsl:value-of select="local-name(.)"/>
57
    </xsl:variable>
58
    <xsl:if test="tei:head or $autoHead='true'">
59
      <xsl:variable name="Depth">
60
        <xsl:choose>
61
          <xsl:when test="not($forcedepth='')">
62
            <xsl:value-of select="$forcedepth"/>
63
          </xsl:when>
64
          <xsl:otherwise>
65
            <xsl:value-of select="$tocDepth"/>
66
          </xsl:otherwise>
67
        </xsl:choose>
68
      </xsl:variable>
69
      <xsl:variable name="thislevel">
70
        <xsl:choose>
71
          <xsl:when test="$myName = 'div'">
72
            <xsl:value-of select="count(ancestor::tei:div)"/>
73
          </xsl:when>
74
          <xsl:when test="starts-with($myName,'div')">
75
            <xsl:value-of select="number(substring-after($myName,'div')) - 1"/>
76
          </xsl:when>
77
          <xsl:otherwise>99</xsl:otherwise>
78
        </xsl:choose>
79
      </xsl:variable>
80
      <xsl:variable name="pointer">
81
        <xsl:apply-templates mode="generateLink" select="."/>
82
      </xsl:variable>
83
      <li>
84
        <xsl:attribute name="class">
85
          <xsl:text>toc</xsl:text>
86
          <xsl:if test="not($autoHead='true') and not(tei:head or @n)"> headless</xsl:if>
87
        </xsl:attribute>
88
        <xsl:call-template name="header">
89
          <xsl:with-param name="toc" select="$pointer"/>
90
          <xsl:with-param name="minimal">false</xsl:with-param>
91
          <xsl:with-param name="display">plain</xsl:with-param>
92
        </xsl:call-template>
93
        <xsl:if test="$thislevel &lt; $Depth">
94
          <xsl:call-template name="continuedToc"/>
95
        </xsl:if>
96
      </li>
97
    </xsl:if>
98
  </xsl:template>
99
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
100
    <desc>Process element ab</desc>
101
  </doc>
102
  <xsl:template match="tei:ab">
103
    <xsl:choose>
104
      <xsl:when test="ancestor::tei:head or parent::tei:title or parent::tei:stage">
105
        <xsl:apply-templates/>
106
        <xsl:if test="following-sibling::tei:ab">
107
          <br/>
108
        </xsl:if>
109
      </xsl:when>
110
      <xsl:when test="parent::tei:sp">
111
        <div>
112
          <xsl:call-template name="rendToClass">
113
            <xsl:with-param name="default">spProse</xsl:with-param>
114
          </xsl:call-template>
115
          <xsl:apply-templates/>
116
        </div>
117
      </xsl:when>
118
      <xsl:otherwise>
119
        <div>
120
          <xsl:call-template name="rendToClass"/>
121
          <xsl:apply-templates/>
122
        </div>
123
      </xsl:otherwise>
124
    </xsl:choose>
125
  </xsl:template>
126
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
127
    <desc>Process element addrLine</desc>
128
  </doc>
129
  <xsl:template match="tei:addrLine">
130
    <xsl:apply-templates/>
131
    <br/>
132
  </xsl:template>
133
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
134
    <desc>Process element address</desc>
135
  </doc>
136
  <xsl:template match="tei:address">
137
    <address>
138
      <xsl:call-template name="rendToClass"/>
139
      <xsl:apply-templates/>
140
    </address>
141
  </xsl:template>
142
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
143
    <desc>Process element argument</desc>
144
  </doc>
145
  <xsl:template match="tei:argument">
146
    <div class="argument">
147
      <xsl:apply-templates/>
148
    </div>
149
  </xsl:template>
150
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
151
    <desc>Process element author</desc>
152
  </doc>
153
  <xsl:template match="tei:author">
154
    <span>
155
      <xsl:call-template name="rendToClass"/>
156
      <xsl:apply-imports/>
157
    </span>
158
  </xsl:template>
159
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
160
    <desc>Process element bibl</desc>
161
  </doc>
162
  <xsl:template match="tei:bibl">
163
    <xsl:choose>
164
      <xsl:when test="parent::tei:q/parent::tei:head or parent::tei:q[@rend='inline']">
165
        <span class="citbibl">
166
          <xsl:apply-templates/>
167
        </span>
168
      </xsl:when>
169
      <xsl:when test="parent::tei:cit | parent::tei:q">
170
        <div class="citbibl">
171
          <xsl:apply-templates/>
172
        </div>
173
      </xsl:when>
174
      <xsl:when test="tei:blockContext(.)">
175
        <div class="biblfree">
176
          <xsl:apply-templates/>
177
        </div>
178
      </xsl:when>
179
      <xsl:otherwise>
180
        <span>
181
          <xsl:attribute name="class">
182
            <xsl:text>bibl</xsl:text>
183
            <xsl:if test="@type">
184
              <xsl:text> bibl-</xsl:text>
185
              <xsl:value-of select="@type"/>
186
            </xsl:if>
187
          </xsl:attribute>
188
          <xsl:apply-templates/>
189
        </span>
190
      </xsl:otherwise>
191
    </xsl:choose>
192
  </xsl:template>
193
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
194
    <desc>Process element change</desc>
195
  </doc>
196
  <xsl:template match="tei:change">
197
    <tr>
198
      <td style="vertical-align:top;" width="15%">
199
        <xsl:value-of select="tei:date"/>
200
      </td>
201
      <td width="85%">
202
        <xsl:value-of select="tei:item"/>
203
      </td>
204
    </tr>
205
  </xsl:template>
206

    
207
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
208
    <desc>Process element choice</desc>
209
  </doc>
210
  <xsl:template match="tei:choice">
211
    <xsl:choose>
212
      <xsl:when test="tei:abbr and tei:expan">
213
        <xsl:apply-templates select="tei:expan"/>
214
        <xsl:text> (</xsl:text>
215
        <xsl:apply-templates select="tei:abbr"/>
216
        <xsl:text>)</xsl:text>
217
      </xsl:when>
218
      <xsl:otherwise>
219
        <xsl:apply-templates/>
220
      </xsl:otherwise>
221
    </xsl:choose>
222
  </xsl:template>
223
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
224
    <desc>Process element choice in plain mode - selects "critical" reading.</desc>
225
  </doc>
226
  <xsl:template match="tei:choice" mode="plain">
227
    <xsl:value-of select="tei:reg"/>
228
    <xsl:value-of select="tei:expan"/>
229
    <xsl:value-of select="tei:corr"/>
230
    <xsl:apply-templates select="tei:choice"/>
231
  </xsl:template>
232
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
233
    <desc>Process element choice</desc>
234
  </doc>
235
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
236
    <desc>
237
      <p>Process element cit</p>
238
      <p>
239
        <p xmlns="http://www.w3.org/1999/xhtml"> quoting </p>
240
      </p>
241
    </desc>
242
  </doc>
243
  <xsl:template match="tei:cit">
244
    <xsl:choose>
245
      <xsl:when test="@rend='display' and tei:quote">
246
        <div>
247
          <xsl:call-template name="rendToClass"/>
248
          <xsl:if test="@n">
249
            <xsl:text>(</xsl:text>
250
            <xsl:value-of select="@n"/>
251
            <xsl:text>) </xsl:text>
252
          </xsl:if>
253
          <xsl:apply-templates select="tei:q|tei:quote"/>
254
          <xsl:apply-templates select="tei:*[not(self::tei:q or self::tei:quote)]"/>
255
        </div>
256
      </xsl:when>
257
      <xsl:when test="@rend='display'">
258
        <blockquote>
259
          <xsl:call-template name="rendToClass"/>
260
          <xsl:variable name="contents">
261
            <xsl:if test="@n">
262
              <xsl:text>(</xsl:text>
263
              <xsl:value-of select="@n"/>
264
              <xsl:text>) </xsl:text>
265
            </xsl:if>
266
            <xsl:apply-templates select="tei:q|tei:quote"/>
267
            <xsl:apply-templates select="tei:*[not(self::tei:q or self::tei:quote)]"/>
268
          </xsl:variable>
269
          <xsl:choose>
270
            <xsl:when test="$outputTarget='html5'">
271
              <xsl:copy-of select="$contents"/>
272
            </xsl:when>
273
            <xsl:otherwise>
274
              <p>
275
                <xsl:copy-of select="$contents"/>
276
              </p>
277
            </xsl:otherwise>
278
          </xsl:choose>
279
        </blockquote>
280
      </xsl:when>
281
      <xsl:when test="tei:bibl">
282
        <div>
283
          <xsl:call-template name="rendToClass"/>
284
          <xsl:if test="@n">
285
            <xsl:text>(</xsl:text>
286
            <xsl:value-of select="@n"/>
287
            <xsl:text>) </xsl:text>
288
          </xsl:if>
289
          <xsl:apply-templates/>
290
        </div>
291
      </xsl:when>
292
      <xsl:otherwise>
293
        <span>
294
          <xsl:call-template name="rendToClass"/>
295
          <xsl:if test="@n">
296
            <xsl:text>(</xsl:text>
297
            <xsl:value-of select="@n"/>
298
            <xsl:text>) </xsl:text>
299
          </xsl:if>
300
          <xsl:apply-templates/>
301
        </span>
302
      </xsl:otherwise>
303
    </xsl:choose>
304
  </xsl:template>
305
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
306
    <desc>Process element code</desc>
307
  </doc>
308
  <xsl:template match="tei:code">
309
    <code>
310
      <xsl:call-template name="rendToClass"/>
311
      <xsl:apply-templates/>
312
    </code>
313
  </xsl:template>
314
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
315
    <desc>
316
    Does not do anything yet.
317
  </desc>
318
  </doc>
319
  <xsl:template match="tei:corr">
320
    <xsl:apply-templates/>
321
  </xsl:template>
322
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
323
    <desc>Decorate date</desc>
324
  </doc>
325
  <xsl:template match="tei:date">
326
    <span>
327
      <xsl:call-template name="rendToClass"/>
328
      <xsl:apply-imports/>
329
    </span>
330
  </xsl:template>
331
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
332
    <desc>The del element</desc>
333
  </doc>
334
  <xsl:template match="tei:del">
335
    <del>
336
      <xsl:apply-templates/>
337
    </del>
338
  </xsl:template>
339
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
340
    <desc>Process element eg</desc>
341
  </doc>
342
  <xsl:template match="tei:eg">
343
    <div>
344
      <xsl:if test="$cssFile">
345
        <xsl:attribute name="class">
346
          <xsl:text>pre_eg</xsl:text>
347
          <xsl:if test="not(*)">
348
            <xsl:text> cdata</xsl:text>
349
          </xsl:if>
350
        </xsl:attribute>
351
      </xsl:if>
352
      <xsl:apply-templates/>
353
    </div>
354
  </xsl:template>
355
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
356
    <desc>Process element emph</desc>
357
  </doc>
358
  <xsl:template match="tei:emph">
359
    <xsl:choose>
360
      <xsl:when test="@rend">
361
        <xsl:call-template name="rendering"/>
362
      </xsl:when>
363
      <xsl:when test="@rendition">
364
        <span>
365
	  <xsl:call-template name="applyRendition"/>
366
        </span>
367
      </xsl:when>
368
      <xsl:otherwise>
369
        <em>
370
          <xsl:apply-templates/>
371
        </em>
372
      </xsl:otherwise>
373
    </xsl:choose>
374
  </xsl:template>
375
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
376
    <desc>Process element epigraph</desc>
377
  </doc>
378
  <xsl:template match="tei:epigraph">
379
    <div>
380
      <xsl:call-template name="rendToClass"/>
381
      <xsl:apply-templates/>
382
    </div>
383
  </xsl:template>
384
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
385
    <desc>Process element epigraph/lg</desc>
386
  </doc>
387
  <xsl:template match="tei:epigraph/tei:lg">
388
    <xsl:apply-templates/>
389
  </xsl:template>
390
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
391
    <desc>Process element foreign and unclear</desc>
392
  </doc>
393
  <xsl:template match="tei:foreign|tei:unclear">
394
    <span>
395
      <xsl:call-template name="rendToClass"/>
396
      <xsl:apply-templates/>
397
    </span>
398
  </xsl:template>
399
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
400
    <desc>Process element caesura</desc>
401
  </doc>
402
  <xsl:template match="tei:caesura">
403
    <span class="caesura">    </span>
404
  </xsl:template>
405
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
406
    <desc>Process element gap</desc>
407
  </doc>
408
  <xsl:template match="tei:gap">
409
    <xsl:element name="{if (tei:blockContext(.)) then 'div' else 'span'}">
410
      <xsl:attribute name="class">gap</xsl:attribute>
411
      <xsl:if test="tei:desc">
412
        <xsl:attribute name="title">
413
          <xsl:value-of select="tei:desc"/>
414
        </xsl:attribute>
415
      </xsl:if>
416
      <xsl:choose>
417
        <xsl:when test="starts-with(@rend,'content:')">
418
          <xsl:value-of select="substring-after(@rend,'content:')"/>
419
        </xsl:when>
420
        <xsl:otherwise>
421
          <xsl:text> [...]</xsl:text>
422
        </xsl:otherwise>
423
      </xsl:choose>
424
    </xsl:element>
425
  </xsl:template>
426
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
427
    <desc>
428
      <p>Process element att</p>
429
      <p>
430
        <p xmlns="http://www.w3.org/1999/xhtml"> special purpose </p>
431
      </p>
432
    </desc>
433
  </doc>
434
  <xsl:template match="tei:att">
435
    <span class="gi">
436
      <b>@<xsl:apply-templates/>
437
         </b>
438
    </span>
439
  </xsl:template>
440
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
441
    <desc>Process gloss element</desc>
442
  </doc>
443
  <xsl:template match="tei:gloss">
444
    <span class="gloss">
445
      <xsl:apply-templates/>
446
    </span>
447
  </xsl:template>
448
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
449
    <desc>
450
      <p>Process element head</p>
451
      <p xmlns="http://www.w3.org/1999/xhtml"> headings etc </p>
452
    </desc>
453
  </doc>
454
  <xsl:template match="tei:head">
455
    <xsl:variable name="parent" select="local-name(..)"/>
456
    <xsl:choose>
457
      <xsl:when test="parent::tei:group or parent::tei:body or parent::tei:front or parent::tei:back">
458
        <h1>
459
          <xsl:apply-templates/>
460
        </h1>
461
      </xsl:when>
462
      <xsl:when test="parent::tei:argument">
463
        <div>
464
          <xsl:call-template name="rendToClass"/>
465
          <xsl:apply-templates/>
466
        </div>
467
      </xsl:when>
468
      <xsl:when test="not(starts-with($parent,'div'))">
469
        <xsl:apply-templates/>
470
      </xsl:when>
471
    </xsl:choose>
472
  </xsl:template>
473
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
474
    <desc>Process element head in plain mode</desc>
475
  </doc>
476
  <xsl:template match="tei:head" mode="plain">
477
    <xsl:if test="preceding-sibling::tei:head">
478
      <xsl:text> </xsl:text>
479
    </xsl:if>
480
    <xsl:apply-templates mode="plain"/>
481
  </xsl:template>
482
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
483
    <desc>Process element head in heading mode</desc>
484
  </doc>
485
  <xsl:template match="tei:head" mode="makeheading">
486
    <xsl:if test="preceding-sibling::tei:head">
487
      <br/>
488
    </xsl:if>
489
    <span>
490
      <xsl:call-template name="rendToClass">
491
        <xsl:with-param name="id">false</xsl:with-param>
492
      </xsl:call-template>
493
      <xsl:apply-templates/>
494
    </span>
495
  </xsl:template>
496
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
497
    <desc>Process element hi</desc>
498
  </doc>
499
  <xsl:template match="tei:hi">
500
    <xsl:choose>
501
      <xsl:when test="@rend">
502
        <xsl:call-template name="rendering"/>
503
      </xsl:when>
504
      <xsl:when test="@rendition">
505
        <span>
506
          <xsl:call-template name="applyRendition"/>
507
          <xsl:apply-templates/>
508
        </span>
509
      </xsl:when>
510
      <xsl:when test="key('TAGREND','hi')">
511
        <span>
512
          <xsl:attribute name="class">
513
            <xsl:for-each select="key('TAGREND',local-name())">
514
              <xsl:call-template name="findRendition">
515
                <xsl:with-param name="value">
516
                  <xsl:value-of select="@render"/>
517
                </xsl:with-param>
518
              </xsl:call-template>
519
            </xsl:for-each>
520
          </xsl:attribute>
521
          <xsl:apply-templates/>
522
        </span>
523
      </xsl:when>
524
      <xsl:otherwise>
525
        <span class="hi">
526
          <xsl:apply-templates/>
527
        </span>
528
      </xsl:otherwise>
529
    </xsl:choose>
530
  </xsl:template>
531
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
532
    <desc>Process element item</desc>
533
  </doc>
534
  <xsl:template match="tei:item" mode="bibl">
535
    <p>
536
      <xsl:call-template name="makeAnchor"/>
537
      <xsl:apply-templates/>
538
    </p>
539
  </xsl:template>
540
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
541
    <desc>Process element item</desc>
542
  </doc>
543
  <xsl:template match="tei:item" mode="glosstable">
544
    <tr>
545
      <td style="vertical-align:top;">
546
        <strong>
547
          <xsl:apply-templates mode="print" select="preceding-sibling::tei:*[1]"/>
548
        </strong>
549
      </td>
550
      <td>
551
        <xsl:call-template name="makeAnchor"/>
552
        <xsl:apply-templates/>
553
      </td>
554
    </tr>
555
  </xsl:template>
556
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
557
    <desc>Process element item</desc>
558
  </doc>
559
  <xsl:template match="tei:item" mode="gloss">
560
    <dt>
561
      <xsl:call-template name="makeAnchor"/>
562
      <xsl:apply-templates mode="print" select="preceding-sibling::tei:label[1]"/>
563
    </dt>
564
    <dd>
565
      <xsl:apply-templates/>
566
    </dd>
567
  </xsl:template>
568
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
569
    <desc>Process element item</desc>
570
  </doc>
571
  <xsl:template match="tei:item">
572
    <li>
573
      <xsl:call-template name="rendToClass"/>
574
      <xsl:choose>
575
        <xsl:when test="@xml:id">
576
          <xsl:call-template name="makeAnchor">
577
            <xsl:with-param name="name">
578
              <xsl:value-of select="@xml:id"/>
579
            </xsl:with-param>
580
          </xsl:call-template>
581
        </xsl:when>
582
        <xsl:when test="$generateParagraphIDs='true'">
583
          <xsl:call-template name="makeAnchor">
584
            <xsl:with-param name="name">
585
              <xsl:value-of select="generate-id()"/>
586
            </xsl:with-param>
587
          </xsl:call-template>
588
        </xsl:when>
589
      </xsl:choose>
590
      <xsl:apply-templates/>
591
    </li>
592
  </xsl:template>
593
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
594
    <desc>Process element item</desc>
595
  </doc>
596
  <xsl:template match="tei:item" mode="inline">
597
    <xsl:if test="preceding-sibling::tei:item">, </xsl:if>
598
    <xsl:if test="not(following-sibling::tei:item) and preceding-sibling::tei:item">
599
      and </xsl:if>
600
    <xsl:text>• </xsl:text>
601
    <xsl:apply-templates/>
602
  </xsl:template>
603
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
604
    <desc>Process element item/tei:label</desc>
605
  </doc>
606
  <xsl:template match="tei:item/tei:label">
607
    <xsl:choose>
608
      <xsl:when test="@rend">
609
        <xsl:call-template name="rendering"/>
610
      </xsl:when>
611
      <xsl:when test="@rendition">
612
        <span>
613
          <xsl:call-template name="applyRendition"/>
614
          <xsl:apply-templates/>
615
        </span>
616
      </xsl:when>
617
      <xsl:otherwise>
618
        <strong>
619
          <xsl:apply-templates/>
620
        </strong>
621
      </xsl:otherwise>
622
    </xsl:choose>
623
  </xsl:template>
624
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
625
    <desc>Process element label</desc>
626
  </doc>
627
  <xsl:template match="tei:label">
628
    <span>
629
      <xsl:call-template name="makeAnchor"/>
630
      <xsl:apply-templates/>
631
    </span>
632
  </xsl:template>
633
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
634
    <desc>Process element label</desc>
635
  </doc>
636
  <xsl:template match="tei:label" mode="print">
637
    <span>
638
      <xsl:call-template name="makeAnchor"/>
639
      <xsl:choose>
640
        <xsl:when test="@rend">
641
          <xsl:call-template name="rendering"/>
642
        </xsl:when>
643
        <xsl:when test="@rendition">
644
          <span>
645
            <xsl:call-template name="applyRendition"/>
646
            <xsl:apply-templates/>
647
          </span>
648
        </xsl:when>
649
        <xsl:otherwise>
650
          <xsl:apply-templates/>
651
        </xsl:otherwise>
652
      </xsl:choose>
653
    </span>
654
  </xsl:template>
655
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
656
    <desc>Process element lb in plain mode</desc>
657
  </doc>
658
  <xsl:template match="tei:lb" mode="plain">
659
    <xsl:text> </xsl:text>
660
  </xsl:template>
661
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
662
    <desc>Process element lb</desc>
663
  </doc>
664
  <xsl:template match="tei:lb">
665
    <xsl:choose>
666
      <xsl:when test="parent::tei:body"/>
667
      <xsl:when test="parent::tei:back"/>
668
      <xsl:when test="parent::tei:front"/>
669
      <xsl:when test="@type='hyphenInWord' and @rend='hidden'"/>
670
      <xsl:when test="@rend='hidden'">
671
        <xsl:text> </xsl:text>
672
      </xsl:when>
673
      <xsl:when test="@rend='-' or @type='hyphenInWord'">
674
        <xsl:text>-</xsl:text>
675
        <br/>
676
      </xsl:when>
677
      <xsl:when test="@rend='above'">
678
        <xsl:text>⌜</xsl:text>
679
      </xsl:when>
680
      <xsl:when test="@rend='below'">
681
        <xsl:text>⌞</xsl:text>
682
      </xsl:when>
683
      <xsl:when test="@rend">
684
        <br class="{@rend}"/>
685
      </xsl:when>
686
      <xsl:otherwise>
687
        <br/>
688
      </xsl:otherwise>
689
    </xsl:choose>
690
  </xsl:template>
691
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
692
    <desc>Process element l</desc>
693
  </doc>
694
  <xsl:template match="tei:l">
695
    <xsl:element name="{if (ancestor::tei:head or ancestor::tei:hi) then 'span' else 'div'}">
696
      <xsl:call-template name="rendToClass">
697
        <xsl:with-param name="default">l</xsl:with-param>
698
      </xsl:call-template>
699
      <xsl:choose>
700
        <xsl:when test="ancestor::tei:div[contains(@rend,'linenumber')]">
701
          <xsl:variable name="n">
702
            <xsl:number/>
703
          </xsl:variable>
704
          <div class="numbering">
705
            <xsl:choose>
706
              <xsl:when test="$n mod 5 = 0">
707
                <xsl:value-of select="$n"/>
708
              </xsl:when>
709
              <xsl:otherwise> </xsl:otherwise>
710
            </xsl:choose>
711
          </div>
712
          <xsl:apply-templates/>
713
        </xsl:when>
714
        <xsl:otherwise>
715
          <xsl:apply-templates/>
716
        </xsl:otherwise>
717
      </xsl:choose>
718
    </xsl:element>
719
  </xsl:template>
720
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
721
    <desc>Process element lg</desc>
722
  </doc>
723
  <xsl:template match="tei:lg">
724
    <xsl:choose>
725
      <xsl:when test="$filePerPage='true'">
726
        <xsl:for-each-group select="node()" group-starting-with="tei:pb">
727
          <xsl:choose>
728
            <xsl:when test="self::tei:pb">
729
              <xsl:apply-templates select="."/>
730
              <div>
731
                <xsl:for-each select="..">
732
                  <xsl:call-template name="rendToClass">
733
                    <xsl:with-param name="id">
734
                      <xsl:choose>
735
                        <xsl:when test="@xml:id">
736
                          <xsl:value-of select="@xml:id"/>
737
                          <xsl:text>continued</xsl:text>
738
                        </xsl:when>
739
                        <xsl:otherwise>
740
                          <xsl:text>false</xsl:text>
741
                        </xsl:otherwise>
742
                      </xsl:choose>
743
                    </xsl:with-param>
744
                  </xsl:call-template>
745
                </xsl:for-each>
746
                <xsl:apply-templates select="current-group() except ."/>
747
              </div>
748
            </xsl:when>
749
            <xsl:otherwise>
750
              <div>
751
                <xsl:for-each select="..">
752
                  <xsl:call-template name="rendToClass"/>
753
                </xsl:for-each>
754
                <xsl:apply-templates select="current-group()"/>
755
              </div>
756
            </xsl:otherwise>
757
          </xsl:choose>
758
        </xsl:for-each-group>
759
      </xsl:when>
760
      <xsl:otherwise>
761
        <div>
762
          <xsl:call-template name="rendToClass"/>
763
          <xsl:apply-templates/>
764
        </div>
765
      </xsl:otherwise>
766
    </xsl:choose>
767
  </xsl:template>
768
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
769
    <desc>Process element lg/tei:l</desc>
770
  </doc>
771
  <xsl:template match="tei:lg/tei:l">
772
    <div>
773
      <xsl:choose>
774
        <xsl:when test="@rend">
775
          <xsl:attribute name="class">
776
            <xsl:choose>
777
              <xsl:when test="@rend='Alignr'">
778
                <xsl:text>right</xsl:text>
779
              </xsl:when>
780
              <xsl:when test="@rend='Alignc'">
781
                <xsl:text>center</xsl:text>
782
              </xsl:when>
783
              <xsl:when test="starts-with(@rend,'indent(')">
784
                <xsl:text>indent</xsl:text>
785
                <xsl:value-of select="concat(substring-before(substring-after(@rend,'('),')'),'em')"/>
786
              </xsl:when>
787
              <xsl:when test="@rend='indent'">
788
                <xsl:text>indent1</xsl:text>
789
              </xsl:when>
790
              <xsl:when test="@rend">
791
                <xsl:value-of select="@rend"/>
792
              </xsl:when>
793
            </xsl:choose>
794
          </xsl:attribute>
795
        </xsl:when>
796
        <xsl:when test="@rendition">
797
          <xsl:call-template name="applyRendition"/>
798
        </xsl:when>
799
        <xsl:otherwise>
800
          <xsl:attribute name="class">
801
            <xsl:value-of select="local-name()"/>
802
          </xsl:attribute>
803
        </xsl:otherwise>
804
      </xsl:choose>
805
      <xsl:apply-templates/>
806
    </div>
807
  </xsl:template>
808
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
809
    <desc>
810
      <p>Process element list</p>
811
      <p>
812
        <p xmlns="http://www.w3.org/1999/xhtml">Lists. Depending on the value of the 'type' attribute, various HTML
813
        lists are generated: <dl><dt>bibl</dt><dd>Items are processed in mode 'bibl'</dd><dt>catalogue</dt><dd>A gloss list is created, inside a paragraph</dd><dt>gloss</dt><dd>A gloss list is created, expecting alternate label and item
814
            elements</dd><dt>glosstable</dt><dd>Label and item pairs are laid out in a two-column table</dd><dt>inline</dt><dd>A comma-separate inline list</dd><dt>runin</dt><dd>An inline list with bullets between items</dd><dt>unordered</dt><dd>A simple unordered list</dd><dt>ordered</dt><dd>A simple ordered list</dd><dt>valList</dt><dd>(Identical to glosstable)</dd></dl>
815
            </p>
816
      </p>
817
    </desc>
818
  </doc>
819
  <xsl:template match="tei:list">
820
    <xsl:if test="tei:head">
821
      <xsl:element name="{if (tei:blockContext(.)) then 'div' else 'span' }">
822
        <xsl:attribute name="class">listhead</xsl:attribute>
823
        <xsl:apply-templates select="tei:head"/>
824
      </xsl:element>
825
    </xsl:if>
826
    <xsl:choose>
827
      <xsl:when test="@type='catalogue'">
828
        <p>
829
          <dl>
830
            <xsl:call-template name="rendToClass">
831
              <xsl:with-param name="default"/>
832
            </xsl:call-template>
833
            <xsl:for-each select="tei:item">
834
              <p/>
835
              <xsl:apply-templates mode="gloss" select="."/>
836
            </xsl:for-each>
837
          </dl>
838
        </p>
839
      </xsl:when>
840
      <xsl:when test="@type='gloss' and @rend='multicol'">
841
        <xsl:variable name="nitems">
842
          <xsl:value-of select="count(tei:item)div 2"/>
843
        </xsl:variable>
844
        <p>
845
          <table>
846
            <xsl:call-template name="rendToClass">
847
              <xsl:with-param name="default"/>
848
            </xsl:call-template>
849
            <tr>
850
              <td style="vertical-align:top;">
851
                <dl>
852
                  <xsl:apply-templates mode="gloss" select="tei:item[position()&lt;=$nitems ]"/>
853
                </dl>
854
              </td>
855
              <td style="vertical-align:top;">
856
                <dl>
857
                  <xsl:apply-templates mode="gloss" select="tei:item[position() &gt;$nitems]"/>
858
                </dl>
859
              </td>
860
            </tr>
861
          </table>
862
        </p>
863
      </xsl:when>
864
      <xsl:when test="@type='gloss' or  tei:label">
865
        <dl>
866
          <xsl:call-template name="rendToClass">
867
            <xsl:with-param name="default"/>
868
          </xsl:call-template>
869
          <xsl:apply-templates mode="gloss" select="tei:item"/>
870
        </dl>
871
      </xsl:when>
872
      <xsl:when test="@type='glosstable' or @type='valList'">
873
        <table>
874
          <xsl:call-template name="rendToClass">
875
            <xsl:with-param name="default"/>
876
          </xsl:call-template>
877
          <xsl:apply-templates mode="glosstable" select="tei:item"/>
878
        </table>
879
      </xsl:when>
880
      <xsl:when test="@type='inline' or ancestor::tei:head or parent::tei:label">
881
        <!--<xsl:if test="not(tei:item)">None</xsl:if>-->
882
        <xsl:apply-templates mode="inline" select="tei:item"/>
883
      </xsl:when>
884
      <xsl:when test="@type='runin'">
885
        <p>
886
          <xsl:apply-templates mode="runin" select="tei:item"/>
887
        </p>
888
      </xsl:when>
889
      <xsl:when test="@type='unordered' or @type='simple'">
890
        <ul>
891
          <xsl:call-template name="rendToClass">
892
            <xsl:with-param name="default"/>
893
          </xsl:call-template>
894
          <xsl:apply-templates select="tei:item"/>
895
        </ul>
896
      </xsl:when>
897
      <xsl:when test="@type='bibl'">
898
        <xsl:apply-templates mode="bibl" select="tei:item"/>
899
      </xsl:when>
900
      <xsl:when test="starts-with(@type,'ordered')">
901
        <ol>
902
          <xsl:call-template name="rendToClass">
903
            <xsl:with-param name="default"/>
904
          </xsl:call-template>
905
          <xsl:if test="starts-with(@type,'ordered:')">
906
            <xsl:attribute name="start">
907
              <xsl:value-of select="substring-after(@type,':')"/>
908
            </xsl:attribute>
909
          </xsl:if>
910
          <xsl:apply-templates select="tei:item"/>
911
        </ol>
912
      </xsl:when>
913
      <xsl:otherwise>
914
        <ul>
915
          <xsl:call-template name="rendToClass">
916
            <xsl:with-param name="default"/>
917
          </xsl:call-template>
918
          <xsl:apply-templates select="tei:item"/>
919
        </ul>
920
      </xsl:otherwise>
921
    </xsl:choose>
922
  </xsl:template>
923
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
924
    <desc>Process element list/tei:label</desc>
925
  </doc>
926
  <xsl:template match="tei:list/tei:label"/>
927
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
928
    <desc>Process element listBibl</desc>
929
  </doc>
930
  <xsl:template match="tei:listBibl">
931
    <xsl:choose>
932
      <xsl:when test="tei:biblStruct and $biblioStyle='mla'">
933
	<div type="listBibl" xmlns="http://www.w3.org/1999/xhtml">	  
934
	<xsl:for-each select="tei:biblStruct">
935
	  <p class="hang" xmlns="http://www.w3.org/1999/xhtml">
936
	    <xsl:apply-templates select="tei:analytic" mode="mla"/>
937
	    <xsl:apply-templates select="tei:monogr" mode="mla"/>
938
	    <xsl:apply-templates select="tei:relatedItem" mode="mla"/>
939
	    <xsl:choose>
940
	      <xsl:when test="tei:note">
941
		<xsl:apply-templates select="tei:note"/>
942
	      </xsl:when>
943
	      <xsl:when test="*//tei:ref/@target and not(contains(*//tei:ref/@target, '#'))">
944
		<xsl:text>Web.&#10;</xsl:text>
945
		<xsl:if test="*//tei:imprint/tei:date/@type='access'">
946
		  <xsl:value-of select="*//tei:imprint/tei:date[@type='access']"/>
947
		  <xsl:text>.</xsl:text>
948
		</xsl:if>
949
	      </xsl:when>
950
	      <xsl:when test="tei:analytic/tei:title[@level='u'] or tei:monogr/tei:title[@level='u']"/>
951
	      <xsl:otherwise>Print.&#10;</xsl:otherwise>
952
	    </xsl:choose>
953
	    <xsl:if test="tei:monogr/tei:imprint/tei:extent"><xsl:value-of select="tei:monogr/tei:imprint/tei:extent"/>. </xsl:if>
954
	    <xsl:if test="tei:series/tei:title[@level='s']">
955
	      <xsl:apply-templates select="tei:series/tei:title[@level='s']"/>
956
	      <xsl:text>. </xsl:text>
957
	    </xsl:if>
958
	  </p>
959
	</xsl:for-each>
960
	</div>
961
      </xsl:when>
962
      <xsl:when test="tei:biblStruct">
963
        <ol class="listBibl">
964
          <xsl:for-each select="tei:biblStruct">
965
            <xsl:sort select="lower-case((tei:*/tei:author/tei:surname|tei:*[1]/tei:author/tei:orgName|tei:*[1]/tei:author/tei:name|tei:*[1]/tei:author|tei:*[1]/tei:editor/tei:surname|tei:*[1]/tei:editor/tei:name|tei:*[1]/tei:editor|tei:*[1]/tei:title[1])[1])"/>
966
            <xsl:sort select="tei:monogr/tei:imprint/tei:date"/>
967
            <li>
968
              <xsl:call-template name="makeAnchor"/>
969
              <xsl:apply-templates select="."/>
970
            </li>
971
          </xsl:for-each>
972
        </ol>
973
      </xsl:when>
974
      <xsl:otherwise>
975
        <ol class="listBibl">
976
          <xsl:for-each select="tei:bibl|tei:biblItem">
977
            <li>
978
              <xsl:call-template name="makeAnchor">
979
                <xsl:with-param name="name">
980
                  <xsl:apply-templates mode="ident" select="."/>
981
                </xsl:with-param>
982
              </xsl:call-template>
983
              <xsl:apply-templates select="."/>
984
            </li>
985
          </xsl:for-each>
986
        </ol>
987
      </xsl:otherwise>
988
    </xsl:choose>
989
  </xsl:template>
990
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
991
    <desc>Process element mentioned</desc>
992
  </doc>
993
  <xsl:template match="tei:mentioned">
994
    <span>
995
      <xsl:call-template name="rendToClass"/>
996
      <xsl:apply-templates/>
997
    </span>
998
  </xsl:template>
999
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1000
    <desc>Process element name in mode "plain"</desc>
1001
  </doc>
1002
  <xsl:template match="tei:name" mode="plain">
1003
    <xsl:variable name="ident">
1004
      <xsl:apply-templates mode="ident" select="."/>
1005
    </xsl:variable>
1006
    <span>
1007
      <xsl:call-template name="makeAnchor">
1008
        <xsl:with-param name="name">
1009
          <xsl:value-of select="$ident"/>
1010
        </xsl:with-param>
1011
      </xsl:call-template>
1012
      <xsl:apply-templates/>
1013
    </span>
1014
  </xsl:template>
1015
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1016
    <desc>Process element note</desc>
1017
  </doc>
1018
  <xsl:template match="tei:note">
1019
    <xsl:variable name="identifier">
1020
      <xsl:call-template name="noteID"/>
1021
    </xsl:variable>
1022
    <xsl:choose>
1023
      <xsl:when test="@place='none'"/>
1024
      <xsl:when test="ancestor::tei:listBibl or ancestor::tei:biblFull         or ancestor::tei:biblStruct">
1025
        <xsl:text> [</xsl:text>
1026
        <xsl:apply-templates/>
1027
        <xsl:text>]</xsl:text>
1028
      </xsl:when>
1029
      <xsl:when test="@place='foot' or @place='bottom' or @place='end' or $autoEndNotes='true'">
1030
        <xsl:element name="{if (parent::tei:head or parent::tei:hi)  then 'span'           else if (parent::tei:l) then 'span'           else if (parent::tei:bibl/parent::tei:head) then 'span'           else if (parent::tei:stage/parent::tei:q) then 'span'           else if  (parent::tei:body or *[not(tei:is-inline(.))]) then 'div' else 'span' }">
1031
          <xsl:call-template name="makeAnchor">
1032
            <xsl:with-param name="name" select="concat($identifier,'_return')"/>
1033
          </xsl:call-template>
1034
          <xsl:variable name="note-title">
1035
            <xsl:variable name="note-text">
1036
              <xsl:apply-templates mode="plain"/>
1037
            </xsl:variable>
1038
            <xsl:value-of select="substring($note-text,1,500)"/>
1039
            <xsl:if test="string-length($note-text) &gt; 500">
1040
              <xsl:text>…</xsl:text>
1041
            </xsl:if>
1042
          </xsl:variable>
1043
          <xsl:choose>
1044
            <xsl:when test="$footnoteFile='true'">
1045
              <a class="notelink" title="{normalize-space($note-title)}" href="{$masterFile}-notes.html#{$identifier}">
1046
		<xsl:element name="{if (@rend='nosup') then 'span' else 'sup'}">
1047
                  <xsl:call-template name="noteN"/>
1048
		</xsl:element>
1049
              </a>
1050
              <xsl:if test="following-sibling::node()[1][self::tei:note]">
1051
		<xsl:element name="{if (@rend='nosup') then 'span' else 'sup'}">
1052
                  <xsl:text>,</xsl:text>
1053
                </xsl:element>
1054
              </xsl:if>
1055
            </xsl:when>
1056
            <xsl:otherwise>
1057
              <a class="notelink" title="{normalize-space($note-title)}" href="#{$identifier}">
1058
		<xsl:element name="{if (@rend='nosup') then 'span' else 'sup'}">				  
1059
                  <xsl:call-template name="noteN"/>
1060
                </xsl:element>
1061
              </a>
1062
              <xsl:if test="following-sibling::node()[1][self::tei:note]">
1063
		<xsl:element name="{if (@rend='nosup') then 'span' else 'sup'}">
1064
                  <xsl:text>,</xsl:text>
1065
                </xsl:element>
1066
              </xsl:if>
1067
            </xsl:otherwise>
1068
          </xsl:choose>
1069
        </xsl:element>
1070
      </xsl:when>
1071
      <xsl:when test="parent::tei:head and @place='margin'">
1072
        <span class="margnote">
1073
          <xsl:apply-templates/>
1074
        </span>
1075
      </xsl:when>
1076
      <xsl:when test="parent::tei:head">
1077
        <xsl:text> [</xsl:text>
1078
        <xsl:apply-templates/>
1079
        <xsl:text>]</xsl:text>
1080
      </xsl:when>
1081
      <xsl:when test="@type='footnote'">
1082
        <div class="note">
1083
          <xsl:call-template name="makeAnchor">
1084
            <xsl:with-param name="name" select="$identifier"/>
1085
          </xsl:call-template>
1086
          <span class="noteNumber">
1087
            <xsl:number/>
1088
          </span>
1089
          <xsl:apply-templates/>
1090
        </div>
1091
      </xsl:when>
1092
      <xsl:when test="(@place='display' or tei:q)          and (parent::tei:div or parent::tei:p or parent::tei:body)">
1093
        <div class="note">
1094
          <xsl:call-template name="makeAnchor">
1095
            <xsl:with-param name="name" select="$identifier"/>
1096
          </xsl:call-template>
1097
          <span class="noteLabel">
1098
            <xsl:choose>
1099
              <xsl:when test="@n">
1100
                <xsl:value-of select="@n"/>
1101
              </xsl:when>
1102
              <xsl:otherwise>
1103
                <xsl:call-template name="i18n">
1104
                  <xsl:with-param name="word">Note</xsl:with-param>
1105
                </xsl:call-template>
1106
                <xsl:text>: </xsl:text>
1107
              </xsl:otherwise>
1108
            </xsl:choose>
1109
          </span>
1110
          <xsl:apply-templates/>
1111
        </div>
1112
      </xsl:when>
1113
      <xsl:when test="@place='display'">
1114
        <blockquote>
1115
          <xsl:call-template name="makeAnchor">
1116
            <xsl:with-param name="name" select="$identifier"/>
1117
          </xsl:call-template>
1118
          <xsl:call-template name="rendToClass"/>
1119
          <xsl:choose>
1120
            <xsl:when test="$outputTarget='html5'">
1121
              <xsl:apply-templates/>
1122
            </xsl:when>
1123
            <xsl:when test="tei:q">
1124
              <xsl:apply-templates/>
1125
            </xsl:when>
1126
            <xsl:otherwise>
1127
              <p>
1128
                <xsl:apply-templates/>
1129
              </p>
1130
            </xsl:otherwise>
1131
          </xsl:choose>
1132
        </blockquote>
1133
      </xsl:when>
1134
      <xsl:when test="@place='margin' and parent::tei:hi and not(*)">
1135
        <span class="margnote">
1136
          <xsl:call-template name="makeAnchor">
1137
            <xsl:with-param name="name" select="$identifier"/>
1138
          </xsl:call-template>
1139
          <xsl:apply-templates/>
1140
        </span>
1141
      </xsl:when>
1142
      <xsl:when test="@place='margin' and *[not(tei:is-inline(.))]">
1143
        <div class="margnote">
1144
          <xsl:call-template name="makeAnchor">
1145
            <xsl:with-param name="name" select="$identifier"/>
1146
          </xsl:call-template>
1147
          <xsl:apply-templates/>
1148
        </div>
1149
      </xsl:when>
1150
      <xsl:when test="@place='margin'">
1151
        <span class="margnote">
1152
          <xsl:call-template name="makeAnchor">
1153
            <xsl:with-param name="name" select="$identifier"/>
1154
          </xsl:call-template>
1155
          <xsl:apply-templates/>
1156
        </span>
1157
      </xsl:when>
1158
      <xsl:when test="@place='inline' or (parent::tei:p or parent::tei:hi or parent::tei:head)">
1159
        <span class="note">
1160
          <xsl:call-template name="makeAnchor">
1161
            <xsl:with-param name="name" select="$identifier"/>
1162
          </xsl:call-template>
1163
          <xsl:text> [</xsl:text>
1164
          <xsl:apply-templates/>
1165
          <xsl:text>]</xsl:text>
1166
        </span>
1167
      </xsl:when>
1168
      <xsl:otherwise>
1169
        <div>
1170
          <xsl:call-template name="makeAnchor">
1171
            <xsl:with-param name="name" select="$identifier"/>
1172
          </xsl:call-template>
1173
          <xsl:attribute name="class">
1174
            <xsl:text>note </xsl:text>
1175
            <xsl:value-of select="@type"/>
1176
          </xsl:attribute>
1177
          <span class="noteLabel">
1178
            <xsl:choose>
1179
              <xsl:when test="@n">
1180
                <xsl:value-of select="@n"/>
1181
              </xsl:when>
1182
              <xsl:otherwise>
1183
                <xsl:call-template name="i18n">
1184
                  <xsl:with-param name="word">Note</xsl:with-param>
1185
                </xsl:call-template>
1186
                <xsl:text>: </xsl:text>
1187
              </xsl:otherwise>
1188
            </xsl:choose>
1189
          </span>
1190
          <xsl:apply-templates/>
1191
        </div>
1192
      </xsl:otherwise>
1193
    </xsl:choose>
1194
  </xsl:template>
1195
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1196
    <desc>Check whether a note should be processed if we are at the top</desc>
1197
  </doc>
1198
  <xsl:template match="tei:note" mode="printallnotes">
1199
    <xsl:choose>
1200
      <xsl:when test="number($splitLevel)=-1">
1201
        <xsl:call-template name="makeaNote"/>
1202
      </xsl:when>
1203
      <xsl:when test="ancestor::tei:group"/>
1204
      <xsl:when test="not(ancestor::tei:div or ancestor::tei:div1)">
1205
        <xsl:call-template name="makeaNote"/>
1206
      </xsl:when>
1207
    </xsl:choose>
1208
  </xsl:template>
1209
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1210
    <desc>Check whether a note should be processed. If we are
1211
    splitting, check that we are in the correct file</desc>
1212
  </doc>
1213
  <xsl:template match="tei:note" mode="printnotes">
1214
    <xsl:param name="whence" select="."/>
1215
    <xsl:choose>
1216
      <xsl:when test="ancestor::tei:listBibl"/>
1217
      <xsl:when test="number($splitLevel)=-1"/>
1218
      <xsl:when test="@place='foot' or @place='bottom' or @place='end'         or $autoEndNotes='true'">
1219
        <xsl:variable name="parent">
1220
	  <xsl:for-each select="ancestor::tei:*[local-name()='div'
1221
	    or local-name()='div1'
1222
	    or local-name()='div2'
1223
	    or local-name()='div3'
1224
	    or local-name()='div4'
1225
	    or local-name()='div5'
1226
	    or local-name()='div6'][1]">
1227
	    <xsl:call-template name="locateParentDiv"/>
1228
	  </xsl:for-each>
1229
        </xsl:variable>
1230

    
1231
        <xsl:if test="$whence = $parent">
1232
          <xsl:call-template name="makeaNote"/>
1233
        </xsl:if>
1234
      </xsl:when>
1235
    </xsl:choose>
1236
  </xsl:template>
1237
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1238
    <desc>Process element note</desc>
1239
  </doc>
1240
  <xsl:template name="makeaNote">
1241
    <xsl:variable name="identifier">
1242
      <xsl:call-template name="noteID"/>
1243
    </xsl:variable>
1244
    <xsl:if test="$verbose='true'">
1245
      <xsl:message>Make note <xsl:value-of select="$identifier"/></xsl:message>
1246
    </xsl:if>
1247
    <div class="note">
1248
      <xsl:call-template name="makeAnchor">
1249
        <xsl:with-param name="name" select="$identifier"/>
1250
      </xsl:call-template>
1251
      <span class="noteLabel">
1252
        <xsl:call-template name="noteN"/>
1253
        <xsl:if test="matches(@n,'[0-9]')">
1254
          <xsl:text>.</xsl:text>
1255
        </xsl:if>
1256
        <xsl:text> </xsl:text>
1257
      </span>
1258
      <div class="noteBody">
1259
        <xsl:apply-templates/>
1260
      </div>
1261
      <xsl:if test="$footnoteBackLink= 'true'">
1262
        <xsl:text> </xsl:text>
1263
        <a class="link_return" title="Go back to text" href="#{concat($identifier,'_return')}">↵</a>
1264
      </xsl:if>
1265
    </div>
1266
  </xsl:template>
1267
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1268
    <desc>Process element note[@type='action']</desc>
1269
  </doc>
1270
  <xsl:template match="tei:note[@type='action']">
1271
    <div class="right"><b>Action <xsl:number count="tei:note[@type='action']" level="any"/>
1272
         </b>: <i><xsl:apply-templates/></i></div>
1273
  </xsl:template>
1274
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1275
    <desc>
1276
      <p>Process element pb</p>
1277
      <p>Indication of a page break. For the purposes of HTML, we simply
1278
      make it an anchor if it has an ID.</p>
1279
    </desc>
1280
  </doc>
1281
  <xsl:template match="tei:pb" mode="ident">
1282
    <xsl:choose>
1283
      <xsl:when test="@xml:id">
1284
        <xsl:value-of select="@xml:id"/>
1285
      </xsl:when>
1286
      <xsl:otherwise>
1287
        <xsl:text>page</xsl:text>
1288
        <!--
1289
	<xsl:for-each select="ancestor::tei:div[1]">
1290
	  <xsl:number level="multiple" format="1.1.1.1.1"/>
1291
	  <xsl:text>-</xsl:text>
1292
	</xsl:for-each>
1293
-->
1294
        <xsl:number level="any"/>
1295
      </xsl:otherwise>
1296
    </xsl:choose>
1297
  </xsl:template>
1298
  <xsl:template match="tei:pb">
1299
    <xsl:choose>
1300
      <xsl:when test="$filePerPage='true'">
1301
        <PAGEBREAK>
1302
          <xsl:attribute name="name">
1303
            <xsl:apply-templates select="." mode="ident"/>
1304
          </xsl:attribute>
1305
          <xsl:copy-of select="@facs"/>
1306
        </PAGEBREAK>
1307
      </xsl:when>
1308
      <xsl:when test="@facs and not(@rend='none')">
1309
        <xsl:variable name="IMG">
1310
          <xsl:choose>
1311
            <xsl:when test="starts-with(@facs,'#')">
1312
              <xsl:for-each select="id(substring(@facs,2))">
1313
                <xsl:value-of select="tei:graphic[1]/@url"/>
1314
              </xsl:for-each>
1315
            </xsl:when>
1316
            <xsl:otherwise>
1317
              <xsl:value-of select="@facs"/>
1318
            </xsl:otherwise>
1319
          </xsl:choose>
1320
        </xsl:variable>
1321
        <xsl:element name="{if (tei:is-inline(..)) then 'span' else 'div'}">
1322
          <xsl:call-template name="rendToClass"/>
1323
          <img src="{$IMG}" alt="page image"/>
1324
        </xsl:element>
1325
      </xsl:when>
1326
      <xsl:when test="$pagebreakStyle='active'">
1327
        <div class="pagebreak">
1328
          <xsl:call-template name="rendToClass"/>
1329
        </div>
1330
      </xsl:when>
1331
      <xsl:when test="$pagebreakStyle='visible' and (parent::tei:body         or parent::tei:front or parent::tei:back or parent::tei:group)">
1332
        <div class="pagebreak">
1333
          <xsl:call-template name="makeAnchor"/>
1334
          <xsl:text> [</xsl:text>
1335
          <xsl:call-template name="i18n">
1336
            <xsl:with-param name="word">page</xsl:with-param>
1337
          </xsl:call-template>
1338
          <xsl:if test="@n">
1339
            <xsl:text> </xsl:text>
1340
            <xsl:value-of select="@n"/>
1341
          </xsl:if>
1342
          <xsl:text>] </xsl:text>
1343
        </div>
1344
      </xsl:when>
1345
      <xsl:when test="$pagebreakStyle='visible'">
1346
        <span class="pagebreak">
1347
          <xsl:call-template name="makeAnchor"/>
1348
          <xsl:text> [</xsl:text>
1349
          <xsl:call-template name="i18n">
1350
            <xsl:with-param name="word">page</xsl:with-param>
1351
          </xsl:call-template>
1352
          <xsl:if test="@n">
1353
            <xsl:text> </xsl:text>
1354
            <xsl:value-of select="@n"/>
1355
          </xsl:if>
1356
          <xsl:text>] </xsl:text>
1357
        </span>
1358
      </xsl:when>
1359
    </xsl:choose>
1360
  </xsl:template>
1361
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1362
    <desc>Process element p</desc>
1363
  </doc>
1364
  <xsl:template match="tei:p">
1365
    <xsl:variable name="wrapperElement">
1366
      <xsl:choose>
1367
        <xsl:when test="$outputTarget='html5'">p</xsl:when>
1368
        <xsl:when test="parent::tei:figure and (tei:q/tei:l or tei:figure or parent::tei:figure/parent::tei:div)">div</xsl:when>
1369
        <xsl:when test="parent::tei:figure">span</xsl:when>
1370
        <xsl:when test="parent::tei:head or    parent::tei:q/parent::tei:head or    parent::tei:note[@place='margin']/parent::tei:head">span</xsl:when>
1371
        <xsl:when test="ancestor::tei:notesStmt">div</xsl:when>
1372
        <xsl:when test="tei:table">div</xsl:when>
1373
        <xsl:when test="parent::tei:note[not(@place or @rend)]">span</xsl:when>
1374
        <xsl:when test="$outputTarget='epub' or $outputTarget='epub3'">div</xsl:when>
1375
        <xsl:when test="tei:eg">div</xsl:when>
1376
        <xsl:when test="tei:figure">div</xsl:when>
1377
        <xsl:when test="tei:floatingText">div</xsl:when>
1378
        <xsl:when test="tei:l">div</xsl:when>
1379
        <xsl:when test="tei:list">div</xsl:when>
1380
        <xsl:when test="tei:moduleSpec">div</xsl:when>
1381
        <xsl:when test="tei:note[@place='display']">div</xsl:when>
1382
        <xsl:when test="tei:note[@place='margin']">div</xsl:when>
1383
        <xsl:when test="tei:note[tei:q]">div</xsl:when>
1384
        <xsl:when test="tei:q/tei:figure">div</xsl:when>
1385
        <xsl:when test="tei:q/tei:list">div</xsl:when>
1386
        <xsl:when test="tei:q[@rend='display']">div</xsl:when>
1387
        <xsl:when test="tei:q[@rend='inline' and tei:note/@place]">div</xsl:when>
1388
        <xsl:when test="tei:q[tei:l]">div</xsl:when>
1389
        <xsl:when test="tei:q[tei:lg]">div</xsl:when>
1390
        <xsl:when test="tei:q[tei:p]">div</xsl:when>
1391
        <xsl:when test="tei:q[tei:sp]">div</xsl:when>
1392
        <xsl:when test="tei:q[tei:floatingText]">div</xsl:when>
1393
        <xsl:when test="tei:quote">div</xsl:when>
1394
        <xsl:when test="tei:specGrp">div</xsl:when>
1395
        <xsl:when test="tei:specGrpRef">div</xsl:when>
1396
        <xsl:when test="tei:specList">div</xsl:when>
1397
        <xsl:when test="tei:table">div</xsl:when>
1398
        <xsl:when test="teix:egXML">div</xsl:when>
1399
        <xsl:when test="ancestor::tei:floatingText">div</xsl:when>
1400
        <xsl:when test="ancestor::tei:closer">div</xsl:when>
1401
        <xsl:when test="parent::tei:p">div</xsl:when>
1402
        <xsl:when test="parent::tei:q">div</xsl:when>
1403
        <xsl:when test="parent::tei:note">div</xsl:when>
1404
        <xsl:when test="parent::tei:remarks">div</xsl:when>
1405
        <xsl:otherwise>
1406
          <xsl:text>p</xsl:text>
1407
        </xsl:otherwise>
1408
      </xsl:choose>
1409
    </xsl:variable>
1410
    <xsl:choose>
1411
      <xsl:when test="$filePerPage='true'">
1412
        <xsl:for-each-group select="node()" group-starting-with="tei:pb">
1413
          <xsl:choose>
1414
            <xsl:when test="self::tei:pb">
1415
              <xsl:apply-templates select="."/>
1416
              <xsl:element name="{$wrapperElement}">
1417
                <xsl:for-each select="..">
1418
                  <xsl:call-template name="rendToClass">
1419
                    <xsl:with-param name="id">
1420
                      <xsl:choose>
1421
                        <xsl:when test="@xml:id">
1422
                          <xsl:value-of select="@xml:id"/>
1423
                          <xsl:text>continued</xsl:text>
1424
                        </xsl:when>
1425
                        <xsl:otherwise>
1426
                          <xsl:text>false</xsl:text>
1427
                        </xsl:otherwise>
1428
                      </xsl:choose>
1429
                    </xsl:with-param>
1430
                  </xsl:call-template>
1431
                </xsl:for-each>
1432
                <xsl:apply-templates select="current-group() except ."/>
1433
              </xsl:element>
1434
            </xsl:when>
1435
            <xsl:otherwise>
1436
              <xsl:element name="{$wrapperElement}">
1437
                <xsl:for-each select="..">
1438
                  <xsl:call-template name="rendToClass"/>
1439
                </xsl:for-each>
1440
                <xsl:apply-templates select="current-group()"/>
1441
              </xsl:element>
1442
            </xsl:otherwise>
1443
          </xsl:choose>
1444
        </xsl:for-each-group>
1445
      </xsl:when>
1446
      <xsl:otherwise>
1447
        <xsl:element name="{$wrapperElement}">
1448
          <xsl:call-template name="rendToClass">
1449
            <xsl:with-param name="default">
1450
              <xsl:if test="not($wrapperElement ='p')">
1451
                <xsl:text>p</xsl:text>
1452
              </xsl:if>
1453
            </xsl:with-param>
1454
          </xsl:call-template>
1455
          <xsl:if test="$numberParagraphs='true'">
1456
	    <xsl:call-template name="numberParagraph"/>
1457
          </xsl:if>
1458
          <xsl:apply-templates/>
1459
        </xsl:element>
1460
      </xsl:otherwise>
1461
    </xsl:choose>
1462
  </xsl:template>
1463
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1464
    <desc>How to number paragraphs</desc>
1465
  </doc>
1466
  <xsl:template name="numberParagraph">
1467
    <span class="numberParagraph">
1468
      <xsl:number/>
1469
    </span>
1470
  </xsl:template>
1471
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1472
    <desc>Process element p[@rend='box']</desc>
1473
  </doc>
1474
  <xsl:template match="tei:p[@rend='box']">
1475
    <p class="box">
1476
      <xsl:apply-templates/>
1477
    </p>
1478
  </xsl:template>
1479
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1480
    <desc>Process element q and tei:said</desc>
1481
  </doc>
1482
  <xsl:template match="tei:q[@rend='inline margQuotes' or
1483
		       @rend='inline margSglQuotes']" priority="99">
1484
    <xsl:apply-templates/>
1485
  </xsl:template>
1486
  <xsl:template match="tei:q[not(@place) and tei:l]">
1487
    <xsl:choose>
1488
      <xsl:when test="tei:blockContext(.)">
1489
        <div class="blockquote">
1490
          <xsl:apply-templates/>
1491
        </div>
1492
      </xsl:when>
1493
      <xsl:otherwise>
1494
        <xsl:apply-templates/>
1495
      </xsl:otherwise>
1496
    </xsl:choose>
1497
  </xsl:template>
1498
  <xsl:template match="tei:q|tei:said">
1499
    <xsl:choose>
1500
      <xsl:when test="parent::tei:q/tei:note[@place='bottom']">
1501
        <span class="inlineq">
1502
          <xsl:call-template name="makeQuote"/>
1503
        </span>
1504
      </xsl:when>
1505
      <xsl:when test="parent::tei:note[@place='bottom'] and not(*)">
1506
        <span class="inlineq">
1507
          <xsl:call-template name="makeQuote"/>
1508
        </span>
1509
      </xsl:when>
1510
      <xsl:when test="tei:blockContext(.)">
1511
        <div class="blockquote {@rend}">
1512
          <xsl:apply-templates/>
1513
        </div>
1514
      </xsl:when>
1515
      <xsl:when test="parent::tei:q[@rend=current()/@rend] or parent::tei:hi or ancestor::tei:head">
1516
        <span class="inlineq {@rend}">
1517
          <xsl:call-template name="makeQuote"/>
1518
        </span>
1519
      </xsl:when>
1520
      <xsl:when test="not(tei:is-inline(.)) or *[not(tei:is-inline(.))]">
1521
        <div class="blockquote {@rend}">
1522
          <xsl:apply-templates/>
1523
        </div>
1524
      </xsl:when>
1525
      <xsl:when test="@rend='display'">
1526
        <p class="blockquote {@rend}">
1527
          <xsl:apply-templates/>
1528
        </p>
1529
      </xsl:when>
1530
      <xsl:when test="tei:lg">
1531
        <xsl:apply-templates/>
1532
      </xsl:when>
1533
      <xsl:when test="@rendition">
1534
        <span>
1535
          <xsl:call-template name="applyRendition"/>
1536
        </span>
1537
      </xsl:when>
1538
      <xsl:when test="contains(@rend,'PRE')">
1539
        <xsl:call-template name="makeQuote"/>
1540
      </xsl:when>
1541
      <xsl:when test="@rend">
1542
        <span class="q {@rend}">
1543
          <xsl:apply-templates/>
1544
        </span>
1545
      </xsl:when>
1546
      <xsl:otherwise>
1547
        <xsl:call-template name="makeQuote"/>
1548
      </xsl:otherwise>
1549
    </xsl:choose>
1550
  </xsl:template>
1551
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1552
    <desc>Process element q[@rend='display']</desc>
1553
  </doc>
1554
  <xsl:template match="tei:q[@rend='display']">
1555
    <blockquote>
1556
      <xsl:call-template name="rendToClass"/>
1557
      <xsl:choose>
1558
        <xsl:when test="tei:p">
1559
          <xsl:apply-templates/>
1560
        </xsl:when>
1561
        <xsl:when test="$outputTarget='html5'">
1562
          <xsl:apply-templates/>
1563
        </xsl:when>
1564
        <xsl:otherwise>
1565
          <p>
1566
            <xsl:apply-templates/>
1567
          </p>
1568
        </xsl:otherwise>
1569
      </xsl:choose>
1570
    </blockquote>
1571
  </xsl:template>
1572
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1573
    <desc>Process element q[@rend='eg']</desc>
1574
  </doc>
1575
  <xsl:template match="tei:q[@rend='eg']">
1576
    <div>
1577
      <xsl:if test="$cssFile">
1578
        <xsl:attribute name="class">eg</xsl:attribute>
1579
      </xsl:if>
1580
      <xsl:apply-templates/>
1581
    </div>
1582
  </xsl:template>
1583
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1584
    <desc>Process element quote</desc>
1585
  </doc>
1586
  <xsl:template match="tei:quote">
1587
    <xsl:choose>
1588
      <xsl:when test="parent::tei:cit">
1589
        <div class="citquote">
1590
          <xsl:apply-templates/>
1591
        </div>
1592
      </xsl:when>
1593
      <xsl:when test="@rend='quoted'">
1594
        <span class="quote_inline">
1595
          <xsl:value-of select="$preQuote"/>
1596
          <xsl:apply-templates/>
1597
          <xsl:value-of select="$postQuote"/>
1598
        </span>
1599
      </xsl:when>
1600
      <xsl:when test="@rend='display' or @rend='block' or tei:lg or tei:lb or tei:p or tei:l or
1601
		      ($autoBlockQuote='true' and string-length(.)&gt;$autoBlockQuoteLength)">
1602
        <blockquote>
1603
          <xsl:call-template name="rendToClass"/>
1604
          <xsl:choose>
1605
            <xsl:when test="$outputTarget='html5'">
1606
              <xsl:apply-templates/>
1607
            </xsl:when>
1608
            <xsl:when test="tei:p|tei:l|tei:lg">
1609
              <xsl:apply-templates/>
1610
            </xsl:when>
1611
            <xsl:otherwise>
1612
              <p>
1613
                <xsl:apply-templates/>
1614
              </p>
1615
            </xsl:otherwise>
1616
          </xsl:choose>
1617
        </blockquote>
1618
      </xsl:when>
1619
      <xsl:otherwise>
1620
        <span class="quote_inline">
1621
          <xsl:apply-templates/>
1622
        </span>
1623
      </xsl:otherwise>
1624
    </xsl:choose>
1625
  </xsl:template>
1626
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1627
    <desc>Process element resp</desc>
1628
  </doc>
1629
  <xsl:template match="tei:resp">
1630
    <xsl:apply-templates/>
1631
    <xsl:text> </xsl:text>
1632
  </xsl:template>
1633
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1634
    <desc>Process element respStmt</desc>
1635
  </doc>
1636
  <xsl:template match="tei:respStmt">
1637
    <xsl:apply-templates/>
1638
  </xsl:template>
1639
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1640
    <desc>Process element salute</desc>
1641
  </doc>
1642
  <xsl:template match="tei:salute">
1643
    <xsl:choose>
1644
      <xsl:when test="parent::tei:closer">
1645
        <xsl:apply-templates/>
1646
      </xsl:when>
1647
      <xsl:otherwise>
1648
        <div class="left">
1649
          <xsl:apply-templates/>
1650
        </div>
1651
      </xsl:otherwise>
1652
    </xsl:choose>
1653
  </xsl:template>
1654
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1655
    <desc>Process element seg, pass through @type and @rend as @class</desc>
1656
  </doc>
1657
  <xsl:template match="tei:seg">
1658
    <span>
1659
      <xsl:choose>
1660
        <xsl:when test="@type">
1661
          <xsl:attribute name="class">
1662
            <xsl:value-of select="@type"/>
1663
          </xsl:attribute>
1664
        </xsl:when>
1665
        <xsl:when test="@rend">
1666
          <xsl:attribute name="class">
1667
            <xsl:value-of select="@rend"/>
1668
          </xsl:attribute>
1669
        </xsl:when>
1670
      </xsl:choose>
1671
      <xsl:apply-templates/>
1672
    </span>
1673
  </xsl:template>
1674
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1675
    <desc>
1676
    put (sic) after text
1677
  </desc>
1678
  </doc>
1679
  <xsl:template match="tei:sic">
1680
    <xsl:apply-templates/>
1681
    <xsl:text> (sic)</xsl:text>
1682
  </xsl:template>
1683
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1684
    <desc>Process element signed</desc>
1685
  </doc>
1686
  <xsl:template match="tei:signed">
1687
    <div class="signed">
1688
      <xsl:apply-templates/>
1689
    </div>
1690
  </xsl:template>
1691
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1692
    <desc>Process element space</desc>
1693
  </doc>
1694
  <xsl:template match="tei:space">
1695
    <span style="display:inline-block">
1696
      <xsl:if test="@extent">
1697
        <xsl:variable name="unit">
1698
          <xsl:choose>
1699
            <xsl:when test="@unit='chars'">
1700
              <xsl:text>em</xsl:text>
1701
            </xsl:when>
1702
            <xsl:when test="@unit">
1703
              <xsl:value-of select="@unit"/>
1704
            </xsl:when>
1705
            <xsl:otherwise>em</xsl:otherwise>
1706
          </xsl:choose>
1707
        </xsl:variable>
1708
        <xsl:attribute name="width">
1709
          <xsl:value-of select="@extent"/>
1710
          <xsl:value-of select="$unit"/>
1711
        </xsl:attribute>
1712
      </xsl:if>
1713
      <xsl:text> </xsl:text>
1714
    </span>
1715
  </xsl:template>
1716
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1717
    <desc>Process element term</desc>
1718
  </doc>
1719
  <xsl:template match="tei:term">
1720
    <xsl:choose>
1721
      <xsl:when test="@rend">
1722
        <xsl:call-template name="rendering"/>
1723
      </xsl:when>
1724
      <xsl:when test="@rendition">
1725
        <span>
1726
          <xsl:call-template name="applyRendition"/>
1727
          <xsl:apply-templates/>
1728
        </span>
1729
      </xsl:when>
1730
      <xsl:otherwise>
1731
        <span class="term">
1732
          <xsl:apply-templates/>
1733
        </span>
1734
      </xsl:otherwise>
1735
    </xsl:choose>
1736
  </xsl:template>
1737
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1738
    <desc>Process element title in "withbr" mode</desc>
1739
  </doc>
1740
  <xsl:template match="tei:title" mode="withbr">
1741
    <xsl:value-of select="."/>
1742
    <br/>
1743
  </xsl:template>
1744
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1745
    <desc>Process element title when it is a child of body</desc>
1746
  </doc>
1747
  <xsl:template match="tei:body/tei:title">
1748
    <div class="title">
1749
      <xsl:apply-templates/>
1750
    </div>
1751
  </xsl:template>
1752
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1753
    <desc>Process element witList</desc>
1754
  </doc>
1755
  <xsl:template match="tei:witList">
1756
    <xsl:apply-templates select="./witness"/>
1757
  </xsl:template>
1758
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1759
    <desc>Process element witness</desc>
1760
  </doc>
1761
  <xsl:template match="tei:witness">
1762
    <p id="{@sigil}">
1763
      <b>Sigle: <xsl:value-of select="@sigil"/>
1764
         </b>
1765
      <br/>
1766
      <xsl:value-of select="text()"/>
1767
      <br/>
1768
      <xsl:apply-templates select="tei:biblStruct"/>
1769
      <xsl:if test="child::tei:note"><br/>See: <xsl:apply-templates select="child::tei:note"/></xsl:if>
1770
    </p>
1771
  </xsl:template>
1772
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1773
    <desc>[html] Activate a value for @rendition<param name="value">value</param>
1774
      </desc>
1775
  </doc>
1776
  <xsl:template name="applyRendition">
1777
    <xsl:attribute name="class">
1778
      <xsl:for-each select="tokenize(normalize-space(@rendition),' ')">
1779
        <xsl:call-template name="findRendition">
1780
          <xsl:with-param name="value">
1781
            <xsl:value-of select="."/>
1782
          </xsl:with-param>
1783
        </xsl:call-template>
1784
      </xsl:for-each>
1785
    </xsl:attribute>
1786
  </xsl:template>
1787
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1788
    <desc>[html] Look up rendition value <param name="value">value</param>
1789
      </desc>
1790
  </doc>
1791
  <xsl:template name="findRendition">
1792
    <xsl:param name="value"/>
1793
    <xsl:choose>
1794
      <xsl:when test="starts-with($value,'#')">
1795
        <xsl:value-of select="substring-after($value,'#')"/>
1796
      </xsl:when>
1797
      <xsl:otherwise>
1798
        <xsl:for-each select="document($value)">
1799
          <xsl:apply-templates select="@xml:id"/>
1800
        </xsl:for-each>
1801
      </xsl:otherwise>
1802
    </xsl:choose>
1803
    <xsl:text> </xsl:text>
1804
  </xsl:template>
1805
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1806
    <desc>[html] Active a value for @rend<param name="value">value</param>
1807
      </desc>
1808
  </doc>
1809
  <xsl:template name="applyRend">
1810
    <xsl:param name="value"/>
1811
    <xsl:choose>
1812
      <xsl:when test="not($value='')">
1813
        <xsl:variable name="thisparm" select="substring-before($value,$rendSeparator)"/>
1814
        <xsl:call-template name="renderingInner">
1815
          <xsl:with-param name="value" select="$thisparm"/>
1816
          <xsl:with-param name="rest" select="substring-after($value,$rendSeparator)"/>
1817
        </xsl:call-template>
1818
      </xsl:when>
1819
      <xsl:otherwise>
1820
        <xsl:apply-templates/>
1821
      </xsl:otherwise>
1822
    </xsl:choose>
1823
  </xsl:template>
1824
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1825
    <desc>[html] sections in mode for table of contents</desc>
1826
  </doc>
1827
  <xsl:template name="continuedToc">
1828
    <xsl:if test="tei:div|tei:div1|tei:div2|tei:div3|tei:div4|tei:div5|tei:div6">
1829
      <ul class="toc">
1830
        <xsl:apply-templates mode="maketoc" select="tei:div|tei:div1|tei:div2|tei:div3|tei:div4|tei:div5|tei:div6"/>
1831
      </ul>
1832
    </xsl:if>
1833
  </xsl:template>
1834
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1835
    <desc>[html] How to identify a note</desc>
1836
  </doc>
1837
  <xsl:template name="noteID">
1838
    <xsl:choose>
1839
      <xsl:when test="@xml:id">
1840
        <xsl:value-of select="@xml:id"/>
1841
      </xsl:when>
1842
      <xsl:otherwise>
1843
        <xsl:text>Note</xsl:text>
1844
        <xsl:number count="tei:note" level="any"/>
1845
      </xsl:otherwise>
1846
    </xsl:choose>
1847
  </xsl:template>
1848
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1849
    <desc>[html] How to label a note</desc>
1850
  </doc>
1851
  <xsl:template name="noteN">
1852
    <xsl:choose>
1853
      <xsl:when test="@n">
1854
        <xsl:value-of select="@n"/>
1855
      </xsl:when>
1856
      <xsl:when test="not(@place) and $consecutiveFNs='true'">
1857
        <xsl:number count="tei:note[not(@place)]" level="any"/>
1858
      </xsl:when>
1859
      <xsl:when test="not(@place)">
1860
        <xsl:choose>
1861
          <xsl:when test="ancestor::tei:front">
1862
            <xsl:number count="tei:note[not(@place)]" from="tei:front" level="any"/>
1863
          </xsl:when>
1864
          <xsl:when test="ancestor::tei:back">
1865
            <xsl:number count="tei:note[not(@place)]" from="tei:back" level="any"/>
1866
          </xsl:when>
1867
          <xsl:otherwise>
1868
            <xsl:number count="tei:note[not(@place)]" from="tei:body" level="any"/>
1869
          </xsl:otherwise>
1870
        </xsl:choose>
1871
      </xsl:when>
1872
      <xsl:when test="@place='end'">
1873
        <xsl:choose>
1874
          <xsl:when test="$consecutiveFNs = 'true'">
1875
            <xsl:number count="tei:note[./@place='end']" level="any"/>
1876
          </xsl:when>
1877
          <xsl:otherwise>
1878
            <xsl:choose>
1879
              <xsl:when test="ancestor::tei:front">
1880
                <xsl:number count="tei:note[./@place='end' ]" from="tei:front" level="any"/>
1881
              </xsl:when>
1882
              <xsl:when test="ancestor::tei:back">
1883
                <xsl:number count="tei:note[./@place='end' ]" from="tei:back" level="any"/>
1884
              </xsl:when>
1885
              <xsl:otherwise>
1886
                <xsl:number count="tei:note[./@place='end' ]" from="tei:body" level="any"/>
1887
              </xsl:otherwise>
1888
            </xsl:choose>
1889
          </xsl:otherwise>
1890
        </xsl:choose>
1891
      </xsl:when>
1892
      <xsl:otherwise>
1893
        <xsl:choose>
1894
          <xsl:when test="$consecutiveFNs = 'true'">
1895
            <xsl:number count="tei:note[@place='foot' or @place='bottom']" level="any"/>
1896
          </xsl:when>
1897
          <xsl:otherwise>
1898
            <xsl:choose>
1899
              <xsl:when test="ancestor::tei:front">
1900
                <xsl:number count="tei:note[@place='foot' or @place='bottom']" from="tei:front" level="any"/>
1901
              </xsl:when>
1902
              <xsl:when test="ancestor::tei:back">
1903
                <xsl:number count="tei:note[@place='foot' or @place='bottom']" from="tei:back" level="any"/>
1904
              </xsl:when>
1905
              <xsl:otherwise>
1906
                <xsl:number count="tei:note[@place='foot' or @place='bottom']" from="tei:body" level="any"/>
1907
              </xsl:otherwise>
1908
            </xsl:choose>
1909
          </xsl:otherwise>
1910
        </xsl:choose>
1911
      </xsl:otherwise>
1912
    </xsl:choose>
1913
  </xsl:template>
1914
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1915
    <desc>[html] Show relevant footnotes <param name="currentID">currentID</param>
1916
      </desc>
1917
  </doc>
1918
  <xsl:template name="partialFootNotes">
1919
    <xsl:param name="currentID"/>
1920
    <xsl:choose>
1921
      <xsl:when test="$currentID='current'"/>
1922
      <xsl:when test="$currentID='' and number($splitLevel)=-1">
1923
        <xsl:call-template name="printNotes"/>
1924
      </xsl:when>
1925
      <xsl:when test="$currentID=''">
1926
        <xsl:for-each select="descendant::tei:text">
1927
          <xsl:call-template name="printNotes"/>
1928
        </xsl:for-each>
1929
      </xsl:when>
1930
      <xsl:otherwise>
1931
        <xsl:choose>
1932
          <xsl:when test="count(id($currentID))&gt;0">
1933
            <xsl:for-each select="id($currentID)">
1934
              <xsl:call-template name="printNotes"/>
1935
            </xsl:for-each>
1936
          </xsl:when>
1937
          <xsl:otherwise>
1938
            <xsl:apply-templates mode="xpath" select="ancestor-or-self::tei:TEI/descendant::tei:text">
1939
              <xsl:with-param name="xpath" select="$currentID"/>
1940
              <xsl:with-param name="action">notes</xsl:with-param>
1941
            </xsl:apply-templates>
1942
          </xsl:otherwise>
1943
        </xsl:choose>
1944
      </xsl:otherwise>
1945
    </xsl:choose>
1946
  </xsl:template>
1947
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
1948
    <desc>[html] </desc>
1949
  </doc>
1950
  <xsl:template name="printNotes">
1951
    <xsl:if test="count(key('NOTES',1)) or ($autoEndNotes='true' and count(key('ALLNOTES',1)))">
1952
      <xsl:choose>
1953
        <xsl:when test="$footnoteFile='true'">
1954
          <xsl:variable name="BaseFile">
1955
            <xsl:value-of select="$masterFile"/>
1956
            <xsl:call-template name="addCorpusID"/>
1957
          </xsl:variable>
1958
          <xsl:variable name="outName">
1959
            <xsl:call-template name="outputChunkName">
1960
              <xsl:with-param name="ident">
1961
                <xsl:value-of select="concat($BaseFile,'-notes')"/>
1962
              </xsl:with-param>
1963
            </xsl:call-template>
1964
          </xsl:variable>
1965
          <xsl:if test="$verbose='true'">
1966
            <xsl:message>Opening file <xsl:value-of select="$outName"/>
1967
               </xsl:message>
1968
          </xsl:if>
1969
          <xsl:result-document doctype-public="{$doctypePublic}" doctype-system="{$doctypeSystem}" encoding="{$outputEncoding}" href="{$outName}" method="{$outputMethod}">
1970
            <html>
1971
              <xsl:comment>THIS FILE IS GENERATED FROM AN XML MASTER. DO NOT EDIT (11)</xsl:comment>
1972
              <xsl:call-template name="addLangAtt"/>
1973
              <head>
1974
                <title>
1975
                  <xsl:apply-templates select="descendant-or-self::tei:text/tei:front//tei:docTitle//text()"/>
1976
                  <xsl:text>: </xsl:text>
1977
                  <xsl:call-template name="i18n">
1978
                    <xsl:with-param name="word">noteHeading</xsl:with-param>
1979
                  </xsl:call-template>
1980
                </title>
1981
                <xsl:call-template name="includeCSS"/>
1982
                <xsl:call-template name="cssHook"/>
1983
              </head>
1984
              <body>
1985
                <xsl:call-template name="bodyMicroData"/>
1986
                <xsl:call-template name="bodyJavascriptHook"/>
1987
                <xsl:call-template name="bodyHook"/>
1988
                <div class="stdheader">
1989
                  <xsl:call-template name="stdheader">
1990
                    <xsl:with-param name="title">
1991
                      <xsl:apply-templates select="descendant-or-self::tei:text/tei:front//tei:docTitle//text()"/>
1992
                      <xsl:text>: </xsl:text>
1993
                      <xsl:call-template name="i18n">
1994
                        <xsl:with-param name="word">noteHeading</xsl:with-param>
1995
                      </xsl:call-template>
1996
                    </xsl:with-param>
1997
                  </xsl:call-template>
1998
                </div>
1999
                <div class="notes">
2000
                  <div class="noteHeading">
2001
                    <xsl:call-template name="i18n">
2002
                      <xsl:with-param name="word">noteHeading</xsl:with-param>
2003
                    </xsl:call-template>
2004
                  </div>
2005
                  <xsl:choose>
2006
                    <xsl:when test="$autoEndNotes='true'">
2007
                      <xsl:apply-templates mode="printnotes" select="key('ALLNOTES',1)"/>
2008
                    </xsl:when>
2009
                    <xsl:otherwise>
2010
                      <xsl:apply-templates mode="printnotes" select="key('NOTES',1)"/>
2011
                    </xsl:otherwise>
2012
                  </xsl:choose>
2013
                </div>
2014
                <xsl:call-template name="stdfooter"/>
2015
                <xsl:call-template name="bodyEndHook"/>
2016
              </body>
2017
            </html>
2018
          </xsl:result-document>
2019
          <xsl:if test="$verbose='true'">
2020
            <xsl:message>Closing file <xsl:value-of select="$outName"/>
2021
               </xsl:message>
2022
          </xsl:if>
2023
        </xsl:when>
2024
        <xsl:otherwise>
2025
	  
2026
          <xsl:variable name="me">
2027
            <xsl:apply-templates select="." mode="ident"/>
2028
          </xsl:variable>
2029
          <xsl:variable name="NOTES">
2030
            <xsl:choose>
2031
              <xsl:when test="self::tei:TEI">
2032
                <xsl:choose>
2033
                  <xsl:when test="$autoEndNotes='true'">
2034
                    <xsl:apply-templates mode="printallnotes" select="key('ALLNOTES',1)"/>
2035
                  </xsl:when>
2036
                  <xsl:otherwise>
2037
                    <xsl:apply-templates mode="printallnotes" select="key('NOTES',1)"/>
2038
                  </xsl:otherwise>
2039
                </xsl:choose>
2040
              </xsl:when>
2041
              <xsl:when test="parent::tei:group and tei:group">
2042
	      </xsl:when>
2043
              <xsl:otherwise>
2044
                <xsl:apply-templates mode="printnotes" select=".//tei:note">
2045
                  <xsl:with-param name="whence" select="$me"/>
2046
                </xsl:apply-templates>
2047
              </xsl:otherwise>
2048
            </xsl:choose>
2049
          </xsl:variable>
2050
          <xsl:for-each select="$NOTES">
2051
            <xsl:if test="html:div">
2052
              <div class="notes">
2053
                <div class="noteHeading">
2054
                  <xsl:call-template name="i18n">
2055
                    <xsl:with-param name="word">noteHeading</xsl:with-param>
2056
                  </xsl:call-template>
2057
                </div>
2058
                <xsl:copy-of select="*"/>
2059
              </div>
2060
            </xsl:if>
2061
          </xsl:for-each>
2062
        </xsl:otherwise>
2063
      </xsl:choose>
2064
    </xsl:if>
2065
    <xsl:if test="ancestor-or-self::tei:TEI/tei:text/descendant::tei:app">
2066
      <div class="notes">
2067
        <div class="noteHeading">
2068
          <xsl:call-template name="i18n">
2069
            <xsl:with-param name="word">noteHeading</xsl:with-param>
2070
          </xsl:call-template>
2071
        </div>
2072
        <xsl:apply-templates mode="printnotes" select="descendant::tei:app"/>
2073
      </div>
2074
    </xsl:if>
2075
  </xsl:template>
2076
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2077
    <desc>
2078
      <p>[html] </p>
2079
      <p>
2080
        <p xmlns="http://www.w3.org/1999/xhtml"> rendering. support for multiple rendition elements added by Nick
2081
        Nicholas </p>
2082
      </p>
2083
    </desc>
2084
  </doc>
2085
  <xsl:template name="rendering">
2086
    <xsl:call-template name="applyRend">
2087
      <xsl:with-param name="value" select="concat(@rend,$rendSeparator)"/>
2088
    </xsl:call-template>
2089
  </xsl:template>
2090
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2091
    <desc>[html] <param name="value">the current segment of the value of the rend
2092
      attribute</param>
2093
         <param name="rest">the remainder of the attribute</param>
2094
      </desc>
2095
  </doc>
2096
  <xsl:template name="renderingInner">
2097
    <xsl:param name="value"/>
2098
    <xsl:param name="rest"/>
2099
    <xsl:choose>
2100
      <xsl:when test="$value='bold' or $value='bo'">
2101
        <b>
2102
          <xsl:call-template name="applyRend">
2103
            <xsl:with-param name="value" select="$rest"/>
2104
          </xsl:call-template>
2105
        </b>
2106
      </xsl:when>
2107
      <xsl:when test="$value='center'">
2108
        <span style="text-align:center">
2109
          <xsl:call-template name="applyRend">
2110
            <xsl:with-param name="value" select="$rest"/>
2111
          </xsl:call-template>
2112
	</span>
2113
      </xsl:when>
2114
      <xsl:when test="$value='code'">
2115
        <b>
2116
          <code>
2117
            <xsl:call-template name="applyRend">
2118
              <xsl:with-param name="value" select="$rest"/>
2119
            </xsl:call-template>
2120
          </code>
2121
        </b>
2122
      </xsl:when>
2123
      <xsl:when test="$value='italics' or $value='italic' or $value='cursive' or         $value='it' or $value='ital'">
2124
        <i>
2125
          <xsl:call-template name="applyRend">
2126
            <xsl:with-param name="value" select="$rest"/>
2127
          </xsl:call-template>
2128
        </i>
2129
      </xsl:when>
2130
      <xsl:when test="$value='ro' or $value='roman'">
2131
        <span style="font-style: normal">
2132
          <xsl:call-template name="applyRend">
2133
            <xsl:with-param name="value" select="$rest"/>
2134
          </xsl:call-template>
2135
        </span>
2136
      </xsl:when>
2137
      <xsl:when test="$value='sc' or $value='smcap'">
2138
        <span style="font-variant: small-caps">
2139
          <xsl:call-template name="applyRend">
2140
            <xsl:with-param name="value" select="$rest"/>
2141
          </xsl:call-template>
2142
        </span>
2143
      </xsl:when>
2144
      <xsl:when test="$value='plain'">
2145
        <xsl:call-template name="applyRend">
2146
          <xsl:with-param name="value" select="$rest"/>
2147
        </xsl:call-template>
2148
      </xsl:when>
2149
      <xsl:when test="$value='quoted'">
2150
        <xsl:text>‘</xsl:text>
2151
        <xsl:call-template name="applyRend">
2152
          <xsl:with-param name="value" select="$rest"/>
2153
        </xsl:call-template>
2154
        <xsl:text>’</xsl:text>
2155
      </xsl:when>
2156
      <xsl:when test="$value='sub'">
2157
        <sub>
2158
          <xsl:call-template name="applyRend">
2159
            <xsl:with-param name="value" select="$rest"/>
2160
          </xsl:call-template>
2161
        </sub>
2162
      </xsl:when>
2163
      <xsl:when test="$value='sup'">
2164
        <sup>
2165
          <xsl:call-template name="applyRend">
2166
            <xsl:with-param name="value" select="$rest"/>
2167
          </xsl:call-template>
2168
        </sup>
2169
      </xsl:when>
2170
      <xsl:when test="$value='important'">
2171
        <span class="important">
2172
          <xsl:call-template name="applyRend">
2173
            <xsl:with-param name="value" select="$rest"/>
2174
          </xsl:call-template>
2175
        </span>
2176
      </xsl:when>
2177
      <xsl:when test="$value='ul'">
2178
        <span style="text-decoration:underline">
2179
          <xsl:call-template name="applyRend">
2180
            <xsl:with-param name="value" select="$rest"/>
2181
          </xsl:call-template>
2182
        </span>
2183
      </xsl:when>
2184
      <xsl:when test="$value='interlinMarks'">
2185
        <xsl:text>`</xsl:text>
2186
        <xsl:call-template name="applyRend">
2187
          <xsl:with-param name="value" select="$rest"/>
2188
        </xsl:call-template>
2189
        <xsl:text>´</xsl:text>
2190
      </xsl:when>
2191
      <xsl:when test="$value='overbar'">
2192
        <span style="text-decoration:overline">
2193
          <xsl:call-template name="applyRend">
2194
            <xsl:with-param name="value" select="$rest"/>
2195
          </xsl:call-template>
2196
        </span>
2197
      </xsl:when>
2198
      <xsl:when test="$value='expanded'">
2199
        <span style="letter-spacing: 0.15em">
2200
          <xsl:call-template name="applyRend">
2201
            <xsl:with-param name="value" select="$rest"/>
2202
          </xsl:call-template>
2203
        </span>
2204
      </xsl:when>
2205
      <xsl:when test="$value='strike'">
2206
        <span style="text-decoration: line-through">
2207
          <xsl:call-template name="applyRend">
2208
            <xsl:with-param name="value" select="$rest"/>
2209
          </xsl:call-template>
2210
        </span>
2211
      </xsl:when>
2212
      <xsl:when test="$value='small'">
2213
        <span style="font-size: 75%">
2214
          <xsl:call-template name="applyRend">
2215
            <xsl:with-param name="value" select="$rest"/>
2216
          </xsl:call-template>
2217
        </span>
2218
      </xsl:when>
2219
      <xsl:when test="$value='large'">
2220
        <span style="font-size: 150%">
2221
          <xsl:call-template name="applyRend">
2222
            <xsl:with-param name="value" select="$rest"/>
2223
          </xsl:call-template>
2224
        </span>
2225
      </xsl:when>
2226
      <xsl:when test="$value='smaller'">
2227
        <span style="font-size: 50%">
2228
          <xsl:call-template name="applyRend">
2229
            <xsl:with-param name="value" select="$rest"/>
2230
          </xsl:call-template>
2231
        </span>
2232
      </xsl:when>
2233
      <xsl:when test="$value='larger'">
2234
        <span style="font-size: 200%">
2235
          <xsl:call-template name="applyRend">
2236
            <xsl:with-param name="value" select="$rest"/>
2237
          </xsl:call-template>
2238
        </span>
2239
      </xsl:when>
2240
      <xsl:when test="$value='calligraphic' or $value='cursive'">
2241
        <span style="font-family: cursive">
2242
          <xsl:call-template name="applyRend">
2243
            <xsl:with-param name="value" select="$rest"/>
2244
          </xsl:call-template>
2245
        </span>
2246
      </xsl:when>
2247
      <xsl:when test="$value='gothic'">
2248
        <span style="font-family: Papyrus, fantasy">
2249
          <xsl:call-template name="applyRend">
2250
            <xsl:with-param name="value" select="$rest"/>
2251
          </xsl:call-template>
2252
        </span>
2253
      </xsl:when>
2254
      <xsl:when test="$value='noindex'">
2255
        <xsl:call-template name="applyRend">
2256
          <xsl:with-param name="value" select="$rest"/>
2257
        </xsl:call-template>
2258
      </xsl:when>
2259
      <xsl:otherwise>
2260
        <xsl:choose>
2261
          <xsl:when test="local-name(.)='p'">
2262
            <xsl:call-template name="unknownRendBlock">
2263
              <xsl:with-param name="rest" select="$rest"/>
2264
              <xsl:with-param name="value" select="$value"/>
2265
            </xsl:call-template>
2266
          </xsl:when>
2267
          <xsl:otherwise>
2268
            <xsl:call-template name="unknownRendInline">
2269
              <xsl:with-param name="rest" select="$rest"/>
2270
              <xsl:with-param name="value" select="$value"/>
2271
            </xsl:call-template>
2272
          </xsl:otherwise>
2273
        </xsl:choose>
2274
      </xsl:otherwise>
2275
    </xsl:choose>
2276
  </xsl:template>
2277
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2278
    <desc>[html] Process unknown rend attribute by turning it into
2279
    an HTML class<param name="value">current value</param>
2280
         <param name="rest">remaining values</param>
2281
      </desc>
2282
  </doc>
2283
  <xsl:template name="unknownRendBlock">
2284
    <xsl:param name="value"/>
2285
    <xsl:param name="rest"/>
2286
    <xsl:if test="not($value='')">
2287
      <xsl:attribute name="class">
2288
        <xsl:value-of select="$value"/>
2289
      </xsl:attribute>
2290
      <xsl:call-template name="applyRend">
2291
        <xsl:with-param name="value" select="$rest"/>
2292
      </xsl:call-template>
2293
    </xsl:if>
2294
  </xsl:template>
2295
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2296
    <desc>[html]  Process unknown rend attribute by turning it into
2297
    an HTML class<param name="value">value</param>
2298
         <param name="rest">rest</param>
2299
      </desc>
2300
  </doc>
2301
  <xsl:template name="unknownRendInline">
2302
    <xsl:param name="value"/>
2303
    <xsl:param name="rest"/>
2304
    <xsl:if test="not($value='')">
2305
      <span class="{$value}">
2306
        <xsl:call-template name="applyRend">
2307
          <xsl:with-param name="value" select="$rest"/>
2308
        </xsl:call-template>
2309
      </span>
2310
    </xsl:if>
2311
  </xsl:template>
2312
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2313
    <desc>[html] Create a point to which we can link in the HTML<param name="name">value for identifier</param>
2314
      </desc>
2315
  </doc>
2316
  <xsl:template name="makeAnchor">
2317
    <xsl:param name="name"/>
2318
    <xsl:choose>
2319
      <xsl:when test="self::tei:anchor and $name">
2320
        <a id="{$name}">
2321
          <xsl:comment>anchor</xsl:comment>
2322
        </a>
2323
      </xsl:when>
2324
      <xsl:when test="self::tei:anchor">
2325
        <a id="{@xml:id}">
2326
          <xsl:comment>anchor</xsl:comment>
2327
        </a>
2328
      </xsl:when>
2329
      <xsl:when test="self::tei:index and $name">
2330
        <a id="{$name}">
2331
          <xsl:comment>index</xsl:comment>
2332
        </a>
2333
      </xsl:when>
2334
      <xsl:when test="self::tei:index">
2335
        <a id="{@xml:id}">
2336
          <xsl:comment>index</xsl:comment>
2337
        </a>
2338
      </xsl:when>
2339
      <xsl:when test="$name">
2340
        <xsl:attribute name="id" select="$name"/>
2341
      </xsl:when>
2342
      <xsl:when test="@xml:id">
2343
        <xsl:attribute name="id" select="@xml:id"/>
2344
      </xsl:when>
2345
      <xsl:otherwise>
2346
        <xsl:variable name="me"><xsl:value-of select="$masterFile"/>-<xsl:value-of select="local-name(.)"/>-<xsl:value-of select="generate-id()"/></xsl:variable>
2347
        <xsl:attribute name="id" select="$me"/>
2348
      </xsl:otherwise>
2349
    </xsl:choose>
2350
  </xsl:template>
2351
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2352
    <desc>Process element soCalled</desc>
2353
  </doc>
2354
  <xsl:template match="tei:soCalled">
2355
    <xsl:choose>
2356
      <xsl:when test="@rend">
2357
        <xsl:call-template name="rendering"/>
2358
      </xsl:when>
2359
      <xsl:when test="@rendition">
2360
        <span>
2361
          <xsl:call-template name="applyRendition"/>
2362
          <xsl:apply-templates/>
2363
        </span>
2364
      </xsl:when>
2365
      <xsl:otherwise>
2366
        <xsl:value-of select="$preQuote"/>
2367
        <xsl:apply-templates/>
2368
        <xsl:value-of select="$postQuote"/>
2369
      </xsl:otherwise>
2370
    </xsl:choose>
2371
  </xsl:template>
2372
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2373
    <desc>Copy all attributes in HTML namespace</desc>
2374
  </doc>
2375
  <xsl:template name="htmlAttributes">
2376
    <xsl:for-each select="@*">
2377
      <xsl:if test="namespace-uri(.)='http://www.w3.org/1999/xhtml'">
2378
        <xsl:attribute name="{local-name(.)}">
2379
          <xsl:value-of select="."/>
2380
        </xsl:attribute>
2381
      </xsl:if>
2382
    </xsl:for-each>
2383
  </xsl:template>
2384
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2385
    <desc>[html] convert rend attribute to HTML class</desc>
2386
  </doc>
2387
  <xsl:template name="rendToClass">
2388
    <xsl:param name="id">true</xsl:param>
2389
    <xsl:param name="default">.</xsl:param>
2390
    <xsl:choose>
2391
      <xsl:when test="$id='false'"/>
2392
      <xsl:when test="$id=''"/>
2393
      <xsl:when test="$id='true' and @xml:id">
2394
        <xsl:attribute name="id">
2395
          <xsl:value-of select="@xml:id"/>
2396
        </xsl:attribute>
2397
      </xsl:when>
2398
      <xsl:when test="$id='true' and self::tei:p and $generateParagraphIDs='true'">
2399
        <xsl:attribute name="id">
2400
          <xsl:value-of select="generate-id()"/>
2401
        </xsl:attribute>
2402
      </xsl:when>
2403
      <xsl:when test="$id='true'"/>
2404
      <xsl:otherwise>
2405
        <xsl:attribute name="id" select="$id"/>
2406
      </xsl:otherwise>
2407
    </xsl:choose>
2408
    <xsl:if test="$outputTarget='html5'">
2409
      <xsl:call-template name="microdata"/>
2410
    </xsl:if>
2411
    <xsl:variable name="class1">
2412
      <xsl:choose>
2413
        <xsl:when test="$default=''"/>
2414
        <xsl:when test="not($default='.')">
2415
          <xsl:value-of select="$default"/>
2416
        </xsl:when>
2417
        <xsl:when test="@type">
2418
          <xsl:value-of select="@type"/>
2419
        </xsl:when>
2420
        <xsl:otherwise>
2421
          <xsl:value-of select="local-name()"/>
2422
        </xsl:otherwise>
2423
      </xsl:choose>
2424
      <xsl:call-template name="rendToClassHook"/>
2425
      <xsl:if test="tei:is-transcribable(.) and $mediaoverlay='true'">
2426
        <xsl:text> transcribable</xsl:text>
2427
      </xsl:if>
2428
    </xsl:variable>
2429
    <xsl:variable name="class2">
2430
      <xsl:choose>
2431
        <xsl:when test="@rend">
2432
          <xsl:value-of select="translate(@rend,'/','-')"/>
2433
        </xsl:when>
2434
        <xsl:when test="@rendition">
2435
          <xsl:call-template name="findRendition">
2436
            <xsl:with-param name="value">
2437
              <xsl:value-of select="@rendition"/>
2438
            </xsl:with-param>
2439
          </xsl:call-template>
2440
        </xsl:when>
2441
        <xsl:when test="key('TAGREND',local-name())">
2442
          <xsl:for-each select="key('TAGREND',local-name())">
2443
            <xsl:call-template name="findRendition">
2444
              <xsl:with-param name="value">
2445
                <xsl:value-of select="@render"/>
2446
              </xsl:with-param>
2447
            </xsl:call-template>
2448
          </xsl:for-each>
2449
        </xsl:when>
2450
      </xsl:choose>
2451
    </xsl:variable>
2452
    <xsl:choose>
2453
      <xsl:when test="$class1='' and $class2=''"/>
2454
      <xsl:when test="$class2=''">
2455
        <xsl:attribute name="class">
2456
          <xsl:value-of select="normalize-space($class1)"/>
2457
        </xsl:attribute>
2458
      </xsl:when>
2459
      <xsl:otherwise>
2460
        <xsl:attribute name="class">
2461
          <xsl:if test="not($class1='')">
2462
            <xsl:value-of select="$class1"/>
2463
            <xsl:text> </xsl:text>
2464
          </xsl:if>
2465
          <xsl:value-of select="$class2"/>
2466
        </xsl:attribute>
2467
      </xsl:otherwise>
2468
    </xsl:choose>
2469
    <xsl:choose>
2470
      <xsl:when test="@rendition">
2471
        <xsl:call-template name="applyRendition"/>
2472
      </xsl:when>
2473
    </xsl:choose>
2474
  </xsl:template>
2475
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2476
    <desc>[html] allow for local extensions to rendToClass</desc>
2477
  </doc>
2478
  <xsl:template name="rendToClassHook"/>
2479
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2480
    <desc>[html] standard case of TEI element which produces a span</desc>
2481
  </doc>
2482
  <xsl:template name="makeSpan">
2483
    <xsl:element name="{if (tei:blockContext(.)) then 'div' else 'span'}">
2484
      <xsl:choose>
2485
        <xsl:when test="@rendition">
2486
          <xsl:call-template name="applyRendition"/>
2487
          <xsl:apply-templates/>
2488
        </xsl:when>
2489
        <xsl:otherwise>
2490
          <xsl:call-template name="rendToClass">
2491
            <xsl:with-param name="default">
2492
              <xsl:value-of select="local-name()"/>
2493
            </xsl:with-param>
2494
          </xsl:call-template>
2495
          <xsl:apply-templates/>
2496
        </xsl:otherwise>
2497
      </xsl:choose>
2498
    </xsl:element>
2499
  </xsl:template>
2500
  <xsl:template name="microdata"/>
2501

    
2502
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2503
    <desc>[html] processing analytic element as needed for MLA style (from Laura Mandell> </desc>
2504
  </doc>
2505
  <xsl:template match="tei:analytic" mode="mla">
2506
    <xsl:variable name="refIdwHash">
2507
      <xsl:value-of select="following-sibling::tei:monogr/tei:ref/@target"/>
2508
    </xsl:variable>
2509
    <xsl:variable name="refId">
2510
      <xsl:value-of select="substring-after($refIdwHash, '#')"/>
2511
    </xsl:variable>
2512
    <xsl:apply-templates/>
2513
    <xsl:if test="not(following-sibling::tei:monogr/tei:title[@level='m']) and $refId!=''">
2514
      <xsl:text> </xsl:text>
2515
      <xsl:if test="following-sibling::tei:monogr/tei:imprint/tei:date">
2516
	<xsl:value-of select="following-sibling::tei:monogr/tei:imprint/tei:date"/>
2517
	<xsl:text>. </xsl:text>
2518
      </xsl:if>
2519
      <xsl:choose>
2520
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[1]">
2521
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[1], ',')"/>
2522
	</xsl:when>
2523
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][1]">
2524
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][1], ',')"/>
2525
	</xsl:when>
2526
      </xsl:choose>
2527
      <xsl:choose>
2528
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[3]">
2529
	  <xsl:text>, </xsl:text>
2530
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[2], ',')"/>
2531
	  <xsl:text>, and </xsl:text>
2532
	</xsl:when>
2533
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][3]">
2534
	  <xsl:text>, </xsl:text>
2535
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][2], ',')"/>
2536
	  <xsl:text>, and </xsl:text>
2537
	</xsl:when>
2538
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[2]">
2539
	  <xsl:text> and </xsl:text>
2540
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[2], ',')"/>
2541
	</xsl:when>
2542
	<xsl:when test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][2]">
2543
	  <xsl:text> and </xsl:text>
2544
	  <xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][2], ',')"/>
2545
	</xsl:when>
2546
      </xsl:choose>
2547
      <xsl:if test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[3]">
2548
	<xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:author[3], ',')"/>
2549
      </xsl:if>
2550
      <xsl:if test="ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][3]">
2551
	<xsl:value-of select="substring-before(ancestor::tei:listBibl/tei:biblStruct[@xml:id=$refId]/tei:monogr/tei:editor[@role='editor'][3], ',')"/>
2552
      </xsl:if>
2553
      <xsl:text> </xsl:text>
2554
      <xsl:value-of select="following-sibling::tei:monogr/tei:imprint/tei:biblScope[@type='pp']"/>
2555
      <xsl:text>. </xsl:text>
2556
    </xsl:if>
2557
  </xsl:template>
2558
  
2559
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2560
    <desc>[html] processing monogr element as needed for MLA style (from Laura Mandell> </desc>
2561
  </doc>
2562
  <xsl:template match="tei:monogr" mode="mla">
2563
    <xsl:choose>
2564
      <xsl:when test="preceding-sibling::tei:analytic">
2565
	<xsl:choose>
2566
	  <xsl:when test="tei:author = parent::tei:biblStruct/tei:analytic/tei:author">
2567
	    <xsl:if test="tei:author[2]">
2568
	      <xsl:apply-templates select="tei:author"/>
2569
	    </xsl:if>
2570
	    <xsl:apply-templates select="tei:title"/>
2571
	    <xsl:if test="tei:edition"><xsl:apply-templates select="tei:edition"/></xsl:if>
2572
	    <xsl:apply-templates select="tei:editor[@role='editor']"/>
2573
	    <xsl:if test="tei:editor[@role='translator']">
2574
	      <xsl:apply-templates select="tei:editor[@role='translator']"/>
2575
	    </xsl:if>
2576
	  </xsl:when>
2577
	  <xsl:otherwise>
2578
	    <xsl:apply-templates select="tei:author"/>
2579
	    <xsl:apply-templates select="tei:title"/>
2580
	    <xsl:if test="tei:edition"><xsl:apply-templates select="tei:edition"/></xsl:if>
2581
	    <xsl:apply-templates select="tei:editor[@role='editor']"/>
2582
	    <xsl:if test="tei:editor[@role='translator']">
2583
	      <xsl:apply-templates select="tei:editor[@role='translator']"/>
2584
	    </xsl:if>
2585
	  </xsl:otherwise>
2586
	</xsl:choose>
2587
      </xsl:when>
2588
      <xsl:when test="tei:editor[@role='editor'] and not(preceding-sibling::tei:analytic) and not(tei:author)">
2589
	<xsl:apply-templates select="tei:editor[@role='editor']"/>
2590
	<xsl:apply-templates select="tei:title"/>
2591
	<xsl:if test="tei:edition"><xsl:apply-templates select="tei:edition"/></xsl:if>
2592
	<xsl:if test="tei:editor[@role='translator']">
2593
	  <xsl:apply-templates select="tei:editor[@role='translator']"/>
2594
	</xsl:if>
2595
      </xsl:when>
2596
      <xsl:otherwise>
2597
	<xsl:apply-templates select="tei:author"/>
2598
	<xsl:apply-templates select="tei:title"/>
2599
	<xsl:if test="tei:edition"><xsl:apply-templates select="tei:edition"/></xsl:if>
2600
	<xsl:apply-templates select="tei:editor[@role='editor']"/>
2601
	<xsl:if test="tei:editor[@role='translator']">
2602
	  <xsl:apply-templates select="tei:editor[@role='translator']"/>
2603
	</xsl:if>
2604
      </xsl:otherwise>
2605
    </xsl:choose>
2606
    <xsl:choose>
2607
      <xsl:when test="*//tei:ref/@target and not(contains(*//tei:ref/@target, '#'))">
2608
	<xsl:if test="tei:imprint/tei:date[@type='update']"><xsl:value-of select="tei:imprint/tei:date[@type='update']"/></xsl:if>
2609
      </xsl:when>
2610
      <xsl:when test="ancestor-or-self::tei:biblStruct/*/tei:title/@level='u'">
2611
	<xsl:value-of select="tei:imprint"/>
2612
      </xsl:when>
2613
      <xsl:when test="tei:title/@level='m'">
2614
	<xsl:if test="tei:imprint/tei:biblScope/@type='vol'">
2615
	<xsl:value-of select="tei:imprint/tei:biblScope[@type='vol']"/>. </xsl:if>
2616
	<xsl:choose>
2617
	  <xsl:when test="tei:imprint/tei:pubPlace"><xsl:value-of select="tei:imprint/tei:pubPlace"/>: </xsl:when>
2618
	  <xsl:otherwise>[n.p.]: </xsl:otherwise>
2619
	</xsl:choose>
2620
	<xsl:choose>
2621
	  <xsl:when test="tei:imprint/tei:publisher"><xsl:value-of select="tei:imprint/tei:publisher"/>, </xsl:when>
2622
	  <xsl:otherwise>[n.p.], </xsl:otherwise>
2623
	</xsl:choose>
2624
	<xsl:choose>
2625
	  <xsl:when test="tei:imprint/tei:date"><xsl:value-of select="tei:imprint/tei:date"/>. </xsl:when>
2626
	  <xsl:otherwise>[n.d.]  </xsl:otherwise>
2627
	</xsl:choose>
2628
      </xsl:when>
2629
      <xsl:when test="tei:title/@level='j'">
2630
	<xsl:if test="tei:imprint/tei:biblScope/@type='vol'"><xsl:value-of select="tei:imprint/tei:biblScope[@type='vol']"/></xsl:if>
2631
	<xsl:if test="tei:imprint/tei:biblScope/@type='no'"><xsl:text>.</xsl:text><xsl:value-of select="tei:imprint/tei:biblScope[@type='no']"/></xsl:if>
2632
	<xsl:if test="tei:imprint/tei:date"><xsl:text>&#10;</xsl:text>(<xsl:value-of select="tei:imprint/tei:date"/>)</xsl:if>
2633
	<xsl:if test="tei:imprint/tei:biblScope/@type='pp'">: <xsl:value-of select="tei:imprint/tei:biblScope[@type='pp']"/></xsl:if>
2634
	<xsl:text>. </xsl:text>
2635
      </xsl:when>
2636
    </xsl:choose>
2637
  </xsl:template>
2638
  
2639
  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
2640
    <desc>[html] processing relatedItem element as needed for MLA style (from Laura Mandell> </desc>
2641
  </doc>
2642
  
2643
  <xsl:template match="tei:relatedItem" mode="mla">
2644
    <xsl:if test="@type='otherEdition'"><xsl:text>Rpt. </xsl:text></xsl:if>
2645
    <xsl:if test="tei:biblStruct/tei:analytic"><xsl:apply-templates select="tei:biblStruct/tei:analytic" mode="mla"/></xsl:if>
2646
    <xsl:if test="tei:biblStruct/tei:monogr"><xsl:apply-templates select="tei:biblStruct/tei:monogr" mode="mla"/></xsl:if>
2647
  </xsl:template>
2648
  
2649
</xsl:stylesheet>