Statistics
| Revision:

root / tmp / org.txm.core / src / groovy / org / txm / importer / graal / xsl / qgraal_dipl.xsl @ 187

History | View | Annotate | Download (27.5 kB)

1
<?xml version='1.0'?>
2

    
3
<!-- This is a stylesheet that gives a "diplomatic" presentation of old French manuscript transcriptions
4
	- abbreviations are resolved and rendered in italics;
5
	- agglutinations are marked with a red +
6
	- deglutinations are marked with e red _
7
                                                          - Strong punctuation is marked with a dot followed by a capital letter;
8
                                                             weak punctuation is marked with a comma.
9
	- direct speech is marked with darkblue color;
10
	- uncertain readings are marked with grey background color;
11
	- text deleted in the original is not visualized;
12
	- text corrected in the normalized version is marked with darkred
13
                                                             color and followed by "(sic!)" note;
14
                                                          - notes are rendered with [*] sign in the text body; the text of the note
15
                                                            appears on "mouse-over" and is reproduced in the end.
16
-->
17

    
18

    
19

    
20
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:me="http://www.menota.org/ns/1.0" xmlns:bfm="http://bfm.ens-lsh.fr/ns/1.0">
21
                <xsl:import href="mdv_common.xsl"/>
22
                <xsl:param name="form">diplomatique</xsl:param>
23
                <xsl:variable name="mode">dipl</xsl:variable>
24
                
25
                <xsl:output method="html"  encoding="utf-8" indent="yes"/>
26
                
27
                <xsl:strip-space elements="*"/>
28
                
29
                <!--                <xsl:variable name="title-formal" select="//fileDesc/titleStmt/title[@type='formal']"/>
30
                                
31
                                <xsl:variable name="title-normal" select="//fileDesc/titleStmt/title[@type='normal']"/>
32
                                
33
                                <xsl:variable name="title-ref" select="//fileDesc/titleStmt/title[@type='reference']"/>
34
                                
35
                                <xsl:variable name="author" select="//titleStmt/author"/>
36
                -->
37
                
38
<!--                <xsl:template match="//tei:p|//tei:head">
39
                                <p>
40
                                                <xsl:if test="@n">
41
                                                                [ § <xsl:value-of select="@n"/>]&#xa0;
42
                                                </xsl:if>
43
                                                <xsl:apply-templates mode="dipl"/>
44
                                </p>
45
                </xsl:template>
46
-->                
47

    
48
                <xsl:variable name="title-source" select="//tei:fileDesc/tei:titleStmt/tei:title[@type='source']"/>
49
                
50
                <xsl:variable name="title-normal" select="//tei:fileDesc/tei:titleStmt/tei:title[@type='normal']"/>
51
                
52
                <xsl:variable name="title-ref" select="//tei:fileDesc/tei:titleStmt/tei:title[@type='reference']"/>
53
                
54
                
55
                <xsl:variable name="author" select="//tei:titleStmt/tei:author"/>
56
                
57
                <xsl:variable name="apostrophe" select='"&apos;"'/>
58
                
59
                
60
<!--                <xsl:template match="/">
61
                                <html>
62
                                                <head>
63
                                                                <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
64
                                                                <title>
65
                                                                                <xsl:if test="$author[not(contains(.,'anonym'))]">
66
                                                                                                <xsl:value-of select="$author"/><xsl:text> : </xsl:text>
67
                                                                                </xsl:if>
68
                                                                                <xsl:value-of select="$title-normal"/>
69
                                                                </title>
70
                                                                <xsl:apply-templates select="//tei:teiHeader"/>
71
                                                </head>
72
                                                <body style="margin-left:10%;margin-right:10%">
73
                                                                <div class="text">
74
                                                                                <xsl:apply-templates select="//tei:text"/>
75
                                                                </div>
76
                                                                <div class="notes">
77
                                                                                <p align="center"><b>Notes</b></p>
78
                                                                                <xsl:apply-templates select="//tei:note[not(@place='inline')]" mode="notes"/>
79
                                                                </div>			
80
                                                </body>		
81
                                </html>	
82
                </xsl:template>
83
-->                
84
                <xsl:template match="/">
85
                                <xsl:apply-templates select="//tei:note[@place='inline']" mode="dipl"/>
86
                                <xsl:apply-templates select="//tei:text//tei:p|//tei:text//tei:head"/>                                
87
                </xsl:template>
88

    
89

    
90
                
91
                <!-- TEI-Header Processing -->
92
                
93
                <xsl:template match="//tei:teiHeader">
94
                                <p align="center">
95
                                                
96
                                                <!-- Author (only appears if not anonymous) -->
97
                                                <xsl:if test="$author[not(contains(.,'anonym'))]">
98
                                                                <span style="font-variant:small-caps;font-weight:bold"><xsl:value-of select="$author"/></span><br/>                
99
                                                </xsl:if>
100
                                                <!-- Title -->
101
                                                <span style="color:darkviolet;font-family:Times;font-weight:bold;font-style:italic;font-size:200%"><xsl:value-of select="$title-normal"/></span><br/>
102
                                                <!-- Scientific editor(s) -->
103
                                                Edition par <xsl:apply-templates select="//tei:titleStmt/tei:editor[@role='editor']"/><br/>
104
                                                Avec la collaboration de <xsl:apply-templates select="//tei:titleStmt/tei:editor[@role='associate_editor']"/><br/>
105
                                                
106
                                                <!-- Series Statement, Publisher, Year 	
107
                                                                <xsl:apply-templates select="fileDesc/seriesStmt/title"/><br/>
108
                                                                <xsl:apply-templates select="//sourceDesc//publicationStmt/pubPlace"/>,
109
                                                                <xsl:apply-templates select="//sourceDesc//publicationStmt/publisher"/>,
110
                                                                <xsl:apply-templates select="//sourceDesc//publicationStmt/date"/>
111
                                                                
112
                                                -->
113
                                </p>
114
                                
115
                                <!-- Information on the electronic version  -->                
116
                                <p align="center">_____________________________________________________<br/><br/>
117
                                                <span style="font-size:75%">Edition électronique<br/>
118
                                                                Dernière révision : <xsl:value-of select="//tei:revisionDesc/tei:change[1]/@when"/></span><br/>
119
                                                                _____________________________________________________</p>
120
                                <p align="center">Version diplomatique
121
                                                <br/>_____________________________________________________</p>
122
                </xsl:template>
123
                              
124
                <!-- Gaps without normalized @rend -->
125
                <xsl:template match="tei:gap[not(@rend)]" mode="dipl">
126
                                <span style="color:darkblue"><xsl:text> [...] </xsl:text></span>
127
                </xsl:template>
128
                
129
                <xsl:template match="tei:gap[@rend][not(@rend='susp' or @rend='points' or @rend='crochets-susp')]" mode="dipl">
130
                                <span style="color:orange"><xsl:text> [...] </xsl:text></span>
131
                </xsl:template>
132
                
133
                <!-- Corrections without normalized @rend -->
134
                
135
                <xsl:template match="tei:choice" mode="dipl">
136
                                <span title="{child::tei:corr/@type}"><xsl:apply-templates select="tei:corr" mode="dipl"/><xsl:text> </xsl:text><xsl:apply-templates select="tei:sic" mode="dipl"/></span>
137
                                <xsl:if test="not(ancestor::tei:w)">
138
                                                <xsl:call-template name="spacing"/>
139
                                </xsl:if>
140
                </xsl:template>
141
                
142
                <xsl:template match="tei:corr[not(@rend)]" mode="dipl">
143
                                <span style="color:darkblue;background-color:yellow"><xsl:text> </xsl:text><xsl:apply-templates mode="dipl"/><xsl:text> </xsl:text></span>
144
                </xsl:template>
145
                
146
                <!--                <xsl:template match="tei:corr[@rend][not(@rend='crochets' or @rend='chevrons')]">
147
                                <span style="color:orange"> <i><xsl:value-of select="@rend"/></i><xsl:text> </xsl:text></span><xsl:apply-templates/>
148
                                </xsl:template>
149
                -->                
150
                <xsl:template match="tei:sic" mode="dipl">(<i>sic&#xa0;:</i><xsl:text> </xsl:text><span style="background-color:pink"><xsl:apply-templates mode="dipl"/></span>)</xsl:template>
151
                
152
                              
153
                <!--  Supplied text -->
154
                
155
                <xsl:template match="tei:supplied" mode="dipl">
156
                                <span style="color:blue">[<xsl:apply-templates mode="dipl"/>]</span>
157
                                <xsl:if test="not(ancestor::tei:w)"><xsl:call-template name="spacing"/></xsl:if>
158
                </xsl:template>
159
                
160
                <!-- Deletions -->
161
                
162
                <xsl:template match="tei:del" mode="dipl">
163
                                <span style="background-color:lightpink"><xsl:apply-templates mode="dipl"/></span>
164
                </xsl:template>
165
                
166
                <xsl:template match="tei:add" mode="dipl">
167
                                <span style="background-color:lightgreen"><xsl:apply-templates mode="dipl"/></span>
168
                </xsl:template>
169
                
170
                <!-- Redundant text -->
171
                
172
                <xsl:template match="tei:surplus" mode="dipl">(<span style="background-color:lightpink"><xsl:apply-templates mode="dipl"/></span><xsl:text> </xsl:text><i>répété</i>)<xsl:call-template name="spacing"></xsl:call-template></xsl:template>
173
                
174
                <!-- Numbers -->
175
                <xsl:template match="tei:num" mode="dipl">
176
                                <span style="color:blue"><xsl:apply-templates mode="dipl"/></span>
177
                </xsl:template>
178
                                              
179
                              
180
                <!-- NOTES -->
181
                
182
                <xsl:template match="tei:note[not(@place='inline')]" mode="dipl">
183
                                <xsl:variable name="note_count"><xsl:value-of select="count(preceding::tei:note[not(@place='inline')]) + 1"/></xsl:variable>
184
                                <!--<a title="{.}" style="color:violet;font-size:75%" href="#note_{$note_count}" name="noteref_{$note_count}">[Note <xsl:value-of select="$note_count"/>]</a>-->
185
                                <span title="{.}" style="color:violet">[<xsl:value-of select="$note_count"/>]</span>
186
                                <xsl:call-template name="spacing"/>
187
                </xsl:template>
188
                
189
                <xsl:template match="tei:note[not(@place='inline')]" mode="notes">
190
                                <xsl:variable name="note_count"><xsl:value-of select="count(preceding::tei:note[not(@place='inline')]) + 1"/></xsl:variable>
191
                                <p><xsl:value-of select="$note_count"/>. <a href="#noteref_{$note_count}" name="note_{$note_count}">[<xsl:value-of select="preceding::tei:milestone[@unit='column'][1]/@xml:id"/>, l. <xsl:value-of select="preceding::tei:lb[1]/@n"/>]</a><xsl:text> </xsl:text> <xsl:value-of select="."/></p>
192
                </xsl:template>
193
                <xsl:template match="tei:note[@place='inline']" mode="dipl">
194
                                <p style="text-align:justify;text-indent:30px;padding-right:20px;padding-left:20px"><span style="color:blue;font-family:Times;font-style:italic"><xsl:value-of select="."/></span></p>
195
                </xsl:template>
196
                
197
                
198
                
199
                <xsl:template match="//tei:text//tei:p|//tei:text//tei:head">
200
                                <table width="100%" style="border:none">
201
                                                <tr>
202
                                                                <td width="10%" valign="top" style="white-space:nowrap;padding-right:10pt;line-height:18px;font-family:Arial;font-size:14px;border:none;text-align:right">
203
                                                                                <xsl:if test="@n"><span style="color:gray;font-size:12px">[§ <xsl:value-of select="@n"/>] </span></xsl:if><xsl:apply-templates select="descendant::tei:lb|descendant::tei:milestone[@unit='column']|descendant::tei:hi[@rend='initiale']" mode="number"/></td>
204
                                                                <td valign="top" style="white-space:nowrap;line-height:18px;font-family:Arial;font-size:14px;border:none">&#xa0;<xsl:apply-templates mode="dipl"/></td>
205
                                                </tr>
206
                                </table>
207
                </xsl:template>
208
                
209
                
210
<!--                <xsl:template match="tei:pb" mode="dipl">
211
                                <xsl:call-template name="pb_common"/>
212
                </xsl:template>
213

    
214
                <xsl:template match="tei:cb" mode="dipl">
215
                                <xsl:call-template name="cb_common"></xsl:call-template>
216
                </xsl:template>
217
                
218
                <xsl:template match="tei:note" mode="dipl">
219
                                <xsl:call-template name="note_common"></xsl:call-template>
220
                </xsl:template>
221

    
222
                <xsl:template match="tei:q" mode="dipl">
223
                                <span style="background-color:lightcyan"><xsl:apply-templates mode="dipl"/></span>
224
                </xsl:template>
225
                
226
                <xsl:template match="tei:gap" mode="dipl">
227
                                <xsl:call-template name="gap_common"></xsl:call-template>
228
                </xsl:template>
229
-->                                
230
      
231
                <!-- Page breaks -->                
232
                
233
                <xsl:template match="//tei:pb[@ed='Pauphilet1923']" mode="dipl">
234
                                (p. <xsl:value-of select="@n"/>)
235
                </xsl:template>
236
                
237
                <xsl:template match="//tei:milestone[@unit='column'][ancestor::tei:p]" mode="dipl">
238
                                <br/><br/><span style="color:darkviolet;font-family:arial;font-size:80%">&lt;<xsl:value-of select="substring-after(@xml:id,'col_')"/>&gt;</span><br/>
239
                </xsl:template>
240
                
241
                <xsl:template match="//tei:milestone[@unit='column'][ancestor::tei:p]" mode="number">
242
                                <br/>&#xa0;<br/><span style="color:darkviolet;font-family:arial;font-size:80%">&#xa0;</span><br/>
243
                </xsl:template>
244
                
245
                <xsl:template match="//tei:milestone[@unit='column'][not(ancestor::tei:p)]">
246
                                <table width="100%">
247
                                                <tr>
248
                                                                <td width="10%" align="right" valign="top" style="padding-right:10pt"><span style="color:darkviolet;font-family:arial;font-size:80%">&#xa0;</span></td>
249
                                                                <td valign="top" style="white-space:nowrap"><span style="color:darkviolet;font-family:arial;font-size:80%">&lt;<xsl:value-of select="substring-after(@xml:id,'col_')"/>&gt;</span></td>
250
                                                </tr>
251
                                </table>                                
252
                </xsl:template>
253
                
254
      
255
                <xsl:template match="tei:lb" mode="dipl">
256
                                <xsl:choose>
257
                                                <xsl:when test="@ed='facs'"><xsl:text>-</xsl:text><br/></xsl:when>
258
                                                <xsl:when test="@ed='norm' or preceding::tei:lb[1][@ed='facs']"></xsl:when>
259
                                                <xsl:when test="position() = 1 and ancestor::tei:s[not(preceding-sibling::*)]"></xsl:when>
260
                                                <xsl:otherwise><br/></xsl:otherwise>
261
                                </xsl:choose>
262
                </xsl:template>
263
                
264
                <xsl:template match="tei:lb" mode="number">
265
                                <xsl:choose>
266
                                                <xsl:when test="@ed='facs'"></xsl:when>
267
                                                <xsl:when test="position() = 1 and ancestor::tei:s[not(preceding-sibling::*)]"></xsl:when>
268
                                                <xsl:otherwise><br/>&#xa0;</xsl:otherwise>
269
                                </xsl:choose>
270
                                <xsl:if test="substring(@n, string-length(@n)) = 0 or substring(@n, string-length(@n)) = 5"><xsl:value-of select="@n"/></xsl:if>
271
                </xsl:template>
272
                                
273
                
274
                <!--<xsl:template match="//tei:lb[@ed='norm']" mode="dipl">                                
275
                </xsl:template>
276
                
277
                <xsl:template match="//tei:lb[not(@ed)]" mode="dipl">
278
                                <xsl:choose>
279
                                                <xsl:when test="position()=1 and not(ancestor::tei:seg)"></xsl:when>
280
                                                <xsl:when test="preceding::tei:w[1][descendant::bfm:headlb]"></xsl:when>
281
                                                <xsl:when test="preceding::tei:w[1][descendant::tei:lb]"></xsl:when>
282
                                                <xsl:otherwise><br/></xsl:otherwise>
283
                                </xsl:choose>
284
                </xsl:template>
285
                
286
                <xsl:template match="//tei:lb[@ed='facs']" mode="dipl">
287
                                <xsl:text>-</xsl:text><br/>
288
                </xsl:template>-->
289
                
290
                
291
                
292
                               
293
                <xsl:template match="//tei:w" mode="dipl">
294
                                <span title="{@type}" class="word" id="{@xml:id}" >
295
                                                <xsl:if test="@rend='fgmt'"><xsl:attribute name="style">color:red</xsl:attribute></xsl:if>
296
                                                <xsl:if test="descendant::me:dipl">
297
                                                                <xsl:apply-templates select="descendant::me:dipl" mode="dipl"/>
298
                                                                <xsl:if test="descendant::tei:sic and not(following-sibling::tei:w[1][descendant::tei:sic])">
299
                                                                                <i><xsl:text> (sic !)</xsl:text></i>
300
                                                                </xsl:if>
301
                                                </xsl:if>
302
                                                <xsl:call-template name="spacing"/>
303
                                </span>
304
                </xsl:template>
305
                
306
<xsl:template name="spacing">
307
                <xsl:choose>
308
                                <xsl:when test="following::tei:w[1][starts-with(@type, 'PON')][starts-with(normalize-space(descendant::text()[1]), ',') or starts-with(normalize-space(descendant::text()[1]), '.') or starts-with(normalize-space(descendant::text()[1]), ']')or contains(., ')')]">
309
                                </xsl:when>
310
                                <xsl:when test="following::node()[1][self::text()][starts-with(normalize-space(.), ',') or starts-with(normalize-space(.), '.') or starts-with(normalize-space(.), ']') or starts-with(normalize-space(.), ')')]">
311
                                </xsl:when>
312
                                <xsl:when test="self::tei:w[starts-with(@type, 'PON')][starts-with(normalize-space(descendant::text()[1]), '[') or starts-with(normalize-space(descendant::text()[1]), '(')]">
313
                                </xsl:when>
314
                                <xsl:when test="substring(., string-length(.))=$apostrophe and not(@type='PONfbl' or @type='PONpdr' or self::tei:note)">
315
                                </xsl:when>
316
                                <xsl:when test="position()=last() and (ancestor::tei:choice or ancestor::tei:supplied[not(@rend='multi_s')] or ancestor::tei:surplus)"></xsl:when>
317
                                <xsl:when test="following-sibling::*[1][self::tei:note]"></xsl:when>
318
                                <xsl:when test="following::tei:w[1][starts-with(@type, 'PON')][contains(., ':') or contains(., ';') or contains(., '!') or contains(., '?')]">
319
                                                <xsl:text>&#xa0;</xsl:text>
320
                                </xsl:when>
321
                                <!--
322
                                <xsl:when test="following::tei:w[1][starts-with(@type, 'PON')][contains(descendant::me:norm, ':') or contains(descendant::me:norm, ';') or contains(descendant::me:norm, '!')or contains(descendant::me:norm, '?')]">
323
                                                <xsl:text>&#xa0;</xsl:text>
324
                                </xsl:when>                                
325
                                -->
326
                                <xsl:when test="@rend='elision'">’</xsl:when>
327
                                <!-- new 201106-03 -->
328
                                <xsl:when test="@rend='fgmt'"></xsl:when>
329
                                <xsl:otherwise>
330
                                                <xsl:text> </xsl:text>
331
                                </xsl:otherwise>
332
                </xsl:choose>
333
                
334
</xsl:template>
335

    
336
                
337
                
338
                <xsl:template match="tei:ex" mode="dipl">
339
                                <xsl:choose>
340
                                                <xsl:when test="@cert='high'"><span style="color:darkgreen;font-style:italic"><xsl:apply-templates mode="dipl"/></span></xsl:when>
341
                                                <xsl:otherwise><span style="color:darkred;font-style:italic"><xsl:apply-templates mode="dipl"/></span></xsl:otherwise>
342
                                </xsl:choose>
343
                </xsl:template>
344
                
345
                <!-- added degl -->
346
                <xsl:template match="bfm:sb" mode="dipl"><span style="color:red">_</span></xsl:template>
347
                
348
<!--                <xsl:template match="tei:sic" mode="dipl">
349
                                <span style="color:darkred" title="sic!"><xsl:apply-templates mode="dipl"/></span>
350
                </xsl:template>
351
                
352
                <xsl:template match="tei:subst" mode="dipl">[<xsl:apply-templates mode="dipl"/>]</xsl:template>
353
                
354
                <xsl:template match="tei:del" mode="dipl">
355
                                <span style="color:red;text-decoration:line-through"><xsl:apply-templates mode="dipl"/></span>
356
                </xsl:template>
357
                
358
                <xsl:template match="tei:add[not(@seq)]" mode="dipl">
359
                                <span style="color:blue;text-decoration:underline"><xsl:apply-templates mode="dipl"/></span>
360
                </xsl:template>
361
-->                
362
                <xsl:template match="tei:add[@seq]" mode="dipl">
363
                                <span style="color:blue"><sup>&lt;<xsl:value-of select="@seq"/></sup><xsl:apply-templates mode="dipl"/><sup><xsl:value-of select="@seq"/>&gt;</sup></span>
364
                </xsl:template>
365
                
366
                <xsl:template match="tei:unclear" mode="dipl">
367
                                <span style="background-color:lightgrey"><xsl:apply-templates mode="dipl"/></span>
368
                </xsl:template>
369
                <!-- font-size:xx-large enlevé -->
370
                <xsl:template match="tei:hi[@rend='initiale']" mode="dipl">
371
                                <span style="font-weight:bold;font-size:large"><xsl:apply-templates mode="dipl"/></span>
372
                </xsl:template>
373

    
374
                <xsl:template match="tei:hi[@rend='initiale']" mode="number">
375
                                <span style="font-weight:bold;font-size:large">&#xa0;</span>
376
                </xsl:template>
377
                
378
                <xsl:template match="//tei:hi[@rend='sup']" mode="dipl">
379
                                <sup><xsl:apply-templates mode="dipl"/></sup>
380
                </xsl:template>
381
                
382
                <!-- Discours direct -->
383
                                <xsl:template match="tei:q[ancestor::tei:q[ancestor::tei:q]]" mode="dipl">
384
                                <span style="background-color:darkcyan"> <xsl:apply-templates mode="dipl"/></span>
385
                </xsl:template>
386
                
387
                <xsl:template match="tei:q[ancestor::tei:q][not(ancestor::tei:q[ancestor::tei:q])]" mode="dipl">
388
                                <span style="background-color:cyan"> <xsl:apply-templates mode="dipl"/></span>
389
                </xsl:template>
390
                
391
                <xsl:template match="tei:q[not(ancestor::tei:q)]" mode="dipl">
392
                                <span style="background-color:lightcyan"> <xsl:apply-templates mode="dipl"/></span>
393
                </xsl:template>
394
                
395
                <!--<xsl:template match="bfm:sb" mode="dipl"><span style="color:violet">_</span></xsl:template>-->
396

    
397
                
398
                
399
                <!-- 
400

    
401

    
402
<xsl:template match="tei:name">
403
	<xsl:value-of select="@reg"/>
404
</xsl:template>
405

    
406
                -->
407
</xsl:stylesheet>