Revision 2398 tmp/org.txm.oriflamms.rcp/groovy/org/txm/macro/oriflamms/prepare/1-default-html.xsl

1-default-html.xsl (revision 2398)
1 1
<?xml version="1.0"?>
2
<xsl:stylesheet xmlns:edate="http://exslt.org/dates-and-times"
3
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
4
	xmlns:tei="http://www.tei-c.org/ns/1.0" 
2
<xsl:stylesheet
3
	xmlns:edate="http://exslt.org/dates-and-times"
4
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5
	xmlns:tei="http://www.tei-c.org/ns/1.0"
5 6
	xmlns:txm="http://textometrie.org/1.0"
6 7
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
7
                exclude-result-prefixes="#all" version="2.0">
8
                
9
	<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="no"/>
10
	
11
	<!-- <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" indent="no"  doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> -->
12
	
13
                
14
                <xsl:strip-space elements="*"/>
15
                
16
	<xsl:param name="pagination-element">pb</xsl:param>
17
	
8
	exclude-result-prefixes="#all" version="2.0">
9

  
10
	<xsl:output method="xml" encoding="UTF-8"
11
		omit-xml-declaration="no" indent="no" />
12

  
13
	<!-- <xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" 
14
		indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> -->
15

  
16

  
17
	<xsl:strip-space elements="*" />
18

  
19
	<xsl:param name="pagination-element">
20
		pb
21
	</xsl:param>
22

  
18 23
	<xsl:variable name="word-element">
19 24
		<xsl:choose>
20
			<xsl:when test="//tei:c//txm:form">c</xsl:when>
21
			<xsl:otherwise>w</xsl:otherwise>
25
			<xsl:when test="//tei:c//txm:form">
26
				c
27
			</xsl:when>
28
			<xsl:otherwise>
29
				w
30
			</xsl:otherwise>
22 31
		</xsl:choose>
23 32
	</xsl:variable>
24 33

  
25 34
	<xsl:variable name="page-number-adjust" as="xs:integer">
26 35
		<xsl:choose>
27
			<xsl:when test="//tei:c//txm:form">1</xsl:when>
28
			<xsl:otherwise>2</xsl:otherwise>
36
			<xsl:when test="//tei:c//txm:form">
37
				1
38
			</xsl:when>
39
			<xsl:otherwise>
40
				2
41
			</xsl:otherwise>
29 42
		</xsl:choose>
30 43
	</xsl:variable>
31
	
32 44

  
33
                <xsl:variable name="inputtype">
34
                	<xsl:choose>
35
                		<xsl:when test="//tei:w//txm:form">xmltxm</xsl:when>
36
                		<xsl:otherwise>xmlw</xsl:otherwise>
37
                	</xsl:choose>
38
                </xsl:variable>
39
	
45

  
46
	<xsl:variable name="inputtype">
47
		<xsl:choose>
48
			<xsl:when test="//tei:w//txm:form">
49
				xmltxm
50
			</xsl:when>
51
			<xsl:otherwise>
52
				xmlw
53
			</xsl:otherwise>
54
		</xsl:choose>
55
	</xsl:variable>
56

  
40 57
	<xsl:variable name="filename">
41
		<xsl:analyze-string select="document-uri(.)" regex="^(.*)/([^/]+)\.[^/]+$">
58
		<xsl:analyze-string select="document-uri(.)"
59
			regex="^(.*)/([^/]+)\.[^/]+$">
42 60
			<xsl:matching-substring>
43
				<xsl:value-of select="regex-group(2)"/>
61
				<xsl:value-of select="regex-group(2)" />
44 62
			</xsl:matching-substring>
45 63
		</xsl:analyze-string>
46 64
	</xsl:variable>
47
                
48
                <xsl:template match="/">
49
                	<html>
50
                		<head>
51
                			<title><xsl:choose>
52
                				<xsl:when test="//tei:text/@id"><xsl:value-of select="//tei:text[1]/@id"/></xsl:when>
53
                				<xsl:otherwise><xsl:value-of select="$filename"/></xsl:otherwise>
54
                			</xsl:choose></title>
55
                			<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
56
                			<link rel="stylesheet" media="all" type="text/css" href="css/bvhepistemon2014.css" />
57
<!--                			<title>
58
                				<xsl:if test="$author[not(contains(.,'anonym'))]">
59
                					<xsl:value-of select="$author"/><xsl:text> : </xsl:text>
60
                				</xsl:if>
61
                				<xsl:value-of select="$title-normal"/>
62
                			</title>                                                                -->
63
                		</head>
64
                			<xsl:apply-templates select="descendant::tei:text"/>
65
                	</html>
66
                </xsl:template>
67 65

  
68
<xsl:template match="tei:text">
69
	<body>
70
		<xsl:if test="$word-element='w'">
71
			<a class="txm-page" title="1"  next-word-id="w_0"/>
72
			<div class="metadata-page">
73
				<h1><xsl:value-of select="@id"></xsl:value-of></h1>
74
				<br/>
75
				<table>
76
					<xsl:for-each select="@*">
77
						<tr>
78
							<td><xsl:value-of select="name()"/></td>
79
							<td><xsl:value-of select="."/></td>
80
						</tr>
81
					</xsl:for-each>
82
				</table>
83
			</div>
84
			
85
		</xsl:if>
86
		<xsl:apply-templates/>		
87
	</body>
88
</xsl:template>
66
	<xsl:template match="/">
67
		<html>
68
			<head>
69
				<title>
70
					<xsl:choose>
71
						<xsl:when test="//tei:text/@id">
72
							<xsl:value-of select="//tei:text[1]/@id" />
73
						</xsl:when>
74
						<xsl:otherwise>
75
							<xsl:value-of select="$filename" />
76
						</xsl:otherwise>
77
					</xsl:choose>
78
				</title>
79
				<meta http-equiv="Content-Type"
80
					content="text/html;charset=UTF-8" />
81
				<link rel="stylesheet" media="all" type="text/css"
82
					href="css/bvhepistemon2014.css" />
83
				<!-- <title> <xsl:if test="$author[not(contains(.,'anonym'))]"> <xsl:value-of 
84
					select="$author"/><xsl:text> : </xsl:text> </xsl:if> <xsl:value-of select="$title-normal"/> 
85
					</title> -->
86
			</head>
87
			<xsl:apply-templates
88
				select="descendant::tei:text" />
89
		</html>
90
	</xsl:template>
89 91

  
90
                <xsl:template match="*">
91
                                <xsl:choose>
92
                                	<xsl:when test="descendant::tei:p|descendant::tei:ab">
93
                                		<div>
94
                                			<xsl:call-template name="addClass"/>
95
                                			<xsl:apply-templates/></div>
96
                                		<xsl:text>&#xa;</xsl:text>
97
                                	</xsl:when>
98
                                	<xsl:otherwise><span>
99
                                		<xsl:call-template name="addClass"/>
100
                                		<xsl:if test="self::tei:add[@del]">
101
                                			<xsl:attribute name="title"><xsl:value-of select="@del"/></xsl:attribute>
102
                                		</xsl:if>
103
                                		<xsl:apply-templates/></span>
104
                                	<xsl:call-template name="spacing"/>
105
                                	</xsl:otherwise>
106
                                </xsl:choose>
107
                </xsl:template>
108
                
109
                <xsl:template match="@*|processing-instruction()|comment()">
110
                                <!--<xsl:copy/>-->
111
                </xsl:template>
112
                
113
<!--                <xsl:template match="comment()">
114
                                <xsl:copy/>
115
                </xsl:template>
116
-->                
117
                <xsl:template match="text()">
118
                                <xsl:value-of select="normalize-space(.)"/>
119
                </xsl:template>
120
                
121
                <xsl:template name="addClass">
122
                	<xsl:attribute name="class">
123
                		<xsl:value-of select="local-name(.)"/>
124
                		<xsl:if test="@type"><xsl:value-of select="concat('-',@type)"/></xsl:if>
125
                		<xsl:if test="@subtype"><xsl:value-of select="concat('-',@subtype)"/></xsl:if>
126
                		<xsl:if test="@rend"><xsl:value-of select="concat('-',@rend)"/></xsl:if>
127
                	</xsl:attribute>                	
128
                </xsl:template>
129
                
130
                <xsl:template match="tei:p|tei:ab|tei:lg">
131
                	<p>
132
                		<xsl:call-template name="addClass"/>
133
                		<xsl:apply-templates/>
134
                	</p>
135
                	<xsl:text>&#xa;</xsl:text>
136
                </xsl:template>
137
	
92
	<xsl:template match="tei:text">
93
		<body>
94
			<xsl:if test="$word-element='w'">
95
				<a class="txm-page" title="1" next-word-id="w_0" />
96
				<div class="metadata-page">
97
					<h1>
98
						<xsl:value-of select="@id"></xsl:value-of>
99
					</h1>
100
					<br />
101
					<table>
102
						<xsl:for-each select="@*">
103
							<tr>
104
								<td>
105
									<xsl:value-of select="name()" />
106
								</td>
107
								<td>
108
									<xsl:value-of select="." />
109
								</td>
110
							</tr>
111
						</xsl:for-each>
112
					</table>
113
				</div>
114

  
115
			</xsl:if>
116
			<xsl:apply-templates />
117
		</body>
118
	</xsl:template>
119

  
120
	<xsl:template match="*">
121
		<xsl:choose>
122
			<xsl:when test="descendant::tei:p|descendant::tei:ab">
123
				<div>
124
					<xsl:call-template name="addClass" />
125
					<xsl:apply-templates />
126
				</div>
127
				<xsl:text>&#xa;</xsl:text>
128
			</xsl:when>
129
			<xsl:otherwise>
130
				<span>
131
					<xsl:call-template name="addClass" />
132
					<xsl:if test="self::tei:add[@del]">
133
						<xsl:attribute name="title"><xsl:value-of
134
							select="@del" /></xsl:attribute>
135
					</xsl:if>
136
					<xsl:apply-templates />
137
				</span>
138
				<xsl:call-template name="spacing" />
139
			</xsl:otherwise>
140
		</xsl:choose>
141
	</xsl:template>
142

  
143
	<xsl:template
144
		match="@*|processing-instruction()|comment()">
145
		<!--<xsl:copy/> -->
146
	</xsl:template>
147

  
148
	<!-- <xsl:template match="comment()"> <xsl:copy/> </xsl:template> -->
149
	<xsl:template match="text()">
150
		<xsl:value-of select="normalize-space(.)" />
151
	</xsl:template>
152

  
153
	<xsl:template name="addClass">
154
		<xsl:attribute name="class">
155
                		<xsl:value-of select="local-name(.)" />
156
                		<xsl:if test="@type"><xsl:value-of
157
			select="concat('-',@type)" /></xsl:if>
158
                		<xsl:if test="@subtype"><xsl:value-of
159
			select="concat('-',@subtype)" /></xsl:if>
160
                		<xsl:if test="@rend"><xsl:value-of
161
			select="concat('-',@rend)" /></xsl:if>
162
                	</xsl:attribute>
163
	</xsl:template>
164

  
165
	<xsl:template match="tei:p|tei:ab|tei:lg">
166
		<p>
167
			<xsl:call-template name="addClass" />
168
			<xsl:apply-templates />
169
		</p>
170
		<xsl:text>&#xa;</xsl:text>
171
	</xsl:template>
172

  
138 173
	<xsl:template match="tei:head">
139 174
		<h2>
140
			<xsl:call-template name="addClass"/>
141
			<xsl:apply-templates/>
175
			<xsl:call-template name="addClass" />
176
			<xsl:apply-templates />
142 177
		</h2>
143 178
	</xsl:template>
144
                
179

  
145 180
	<xsl:template match="//tei:lb">
146 181
		<xsl:variable name="lbcount">
147 182
			<xsl:choose>
148
				<xsl:when test="ancestor::tei:ab"><xsl:number from="tei:ab" level="any"/></xsl:when>
149
				<xsl:when test="ancestor::tei:p"><xsl:number from="tei:p" level="any"/></xsl:when>
150
				<xsl:otherwise>999</xsl:otherwise>
151
			</xsl:choose>
152
		</xsl:variable>
153
		<xsl:if test="@rend='hyphen(-)'"><span class="hyphen">-</span></xsl:if>
154
		<xsl:if test="@rend='hyphen(=)'"><span class="hyphen">=</span></xsl:if>
155
		<xsl:if test="not($lbcount=1) or preceding-sibling::node()[matches(.,'\S')]"><br/><xsl:text>&#xa;</xsl:text></xsl:if>
156
<!--		<xsl:if test="@n and not(@rend='prose')">
157
			<xsl:choose>
158
				<xsl:when test="matches(@n,'^[0-9]*[05]$')">
159
					<!-\-<a title="{@n}" class="verseline" style="position:relative"> </a>-\->
160
					<span class="verseline"><span class="verselinenumber"><xsl:value-of select="@n"/></span></span>
183
				<xsl:when test="ancestor::tei:ab">
184
					<xsl:number from="tei:ab" level="any" />
161 185
				</xsl:when>
162
				<xsl:when test="matches(@n,'[^0-9]')">
163
					<!-\-<a title="{@n}" class="verseline" style="position:relative"> </a>-\->
164
					<span class="verseline"><span class="verselinenumber"><xsl:value-of select="@n"/></span></span>
186
				<xsl:when test="ancestor::tei:p">
187
					<xsl:number from="tei:p" level="any" />
165 188
				</xsl:when>
166 189
				<xsl:otherwise>
190
					999
167 191
				</xsl:otherwise>
168 192
			</xsl:choose>
169
		</xsl:if>-->
170
		<xsl:if test="@n"><span class="verseline"><span class="verselinenumber"><xsl:value-of select="@n"/></span></span></xsl:if>
193
		</xsl:variable>
194
		<xsl:if test="@rend='hyphen(-)'">
195
			<span class="hyphen">-</span>
196
		</xsl:if>
197
		<xsl:if test="@rend='hyphen(=)'">
198
			<span class="hyphen">=</span>
199
		</xsl:if>
200
		<xsl:if
201
			test="not($lbcount=1) or preceding-sibling::node()[matches(.,'\S')]">
202
			<br />
203
			<xsl:text>&#xa;</xsl:text>
204
		</xsl:if>
205
		<!-- <xsl:if test="@n and not(@rend='prose')"> <xsl:choose> <xsl:when test="matches(@n,'^[0-9]*[05]$')"> 
206
			<!-\-<a title="{@n}" class="verseline" style="position:relative"> </a>-\-> 
207
			<span class="verseline"><span class="verselinenumber"><xsl:value-of select="@n"/></span></span> 
208
			</xsl:when> <xsl:when test="matches(@n,'[^0-9]')"> <!-\-<a title="{@n}" class="verseline" 
209
			style="position:relative"> </a>-\-> <span class="verseline"><span class="verselinenumber"><xsl:value-of 
210
			select="@n"/></span></span> </xsl:when> <xsl:otherwise> </xsl:otherwise> 
211
			</xsl:choose> </xsl:if> -->
212
		<xsl:if test="@n">
213
			<span class="verseline">
214
				<span class="verselinenumber">
215
					<xsl:value-of select="@n" />
216
				</span>
217
			</span>
218
		</xsl:if>
171 219
	</xsl:template>
172
	
173
	<!-- Page breaks -->                
174
	<xsl:template match="//*[local-name()=$pagination-element]">
175
		
220

  
221
	<!-- Page breaks -->
222
	<xsl:template
223
		match="//*[local-name()=$pagination-element]">
224

  
176 225
		<xsl:variable name="next-word-position" as="xs:integer">
177 226
			<xsl:choose>
178 227
				<xsl:when test="following::*[local-name()=$word-element]">
179
					<xsl:value-of select="count(following::*[local-name()=$word-element][1]/preceding::*[local-name()=$word-element])"/>
228
					<xsl:value-of
229
						select="count(following::*[local-name()=$word-element][1]/preceding::*[local-name()=$word-element])" />
180 230
				</xsl:when>
181
				<xsl:otherwise>0</xsl:otherwise>
231
				<xsl:otherwise>
232
					0
233
				</xsl:otherwise>
182 234
			</xsl:choose>
183 235
		</xsl:variable>
184 236
		<xsl:variable name="next-pb-position" as="xs:integer">
185 237
			<xsl:choose>
186
				<xsl:when test="following::*[local-name()=$pagination-element]">
187
					<xsl:value-of select="count(following::*[local-name()=$pagination-element][1]/preceding::*[local-name()=$word-element])"/>
238
				<xsl:when
239
					test="following::*[local-name()=$pagination-element]">
240
					<xsl:value-of
241
						select="count(following::*[local-name()=$pagination-element][1]/preceding::*[local-name()=$word-element])" />
188 242
				</xsl:when>
189
				<xsl:otherwise>999999999</xsl:otherwise>
243
				<xsl:otherwise>
244
					999999999
245
				</xsl:otherwise>
190 246
			</xsl:choose>
191 247
		</xsl:variable>
192 248
		<xsl:variable name="next-word-id">
193 249
			<xsl:choose>
194
				<xsl:when test="$next-pb-position - $next-word-position = 999999999">w_0</xsl:when>
195
				<xsl:when test="$next-pb-position &gt; $next-word-position"><xsl:value-of select="following::*[local-name()=$word-element][1]/@id"/></xsl:when>
196
				<xsl:otherwise>w_0</xsl:otherwise>
250
				<xsl:when
251
					test="$next-pb-position - $next-word-position = 999999999">
252
					w_0
253
				</xsl:when>
254
				<xsl:when test="$next-pb-position &gt; $next-word-position">
255
					<xsl:value-of
256
						select="following::*[local-name()=$word-element][1]/@id" />
257
				</xsl:when>
258
				<xsl:otherwise>
259
					w_0
260
				</xsl:otherwise>
197 261
			</xsl:choose>
198 262
		</xsl:variable>
199
		
200
		
263

  
264

  
201 265
		<xsl:variable name="editionpagetype">
202 266
			<xsl:choose>
203
				<xsl:when test="ancestor::tei:ab">editionpageverse</xsl:when>
204
				<xsl:otherwise>editionpage</xsl:otherwise>
267
				<xsl:when test="ancestor::tei:ab">
268
					editionpageverse
269
				</xsl:when>
270
				<xsl:otherwise>
271
					editionpage
272
				</xsl:otherwise>
205 273
			</xsl:choose>
206 274
		</xsl:variable>
207 275
		<xsl:variable name="pagenumber">
208 276
			<xsl:choose>
209
				<xsl:when test="@n"><xsl:value-of select="@n"/></xsl:when>
210
				<xsl:when test="@facs"><xsl:value-of select="substring-before(@facs,'.')"/></xsl:when>
211
				<xsl:otherwise>[NN]</xsl:otherwise>
277
				<xsl:when test="@n">
278
					<xsl:value-of select="@n" />
279
				</xsl:when>
280
				<xsl:when test="@facs">
281
					<xsl:value-of select="substring-before(@facs,'.')" />
282
				</xsl:when>
283
				<xsl:otherwise>
284
					[NN]
285
				</xsl:otherwise>
212 286
			</xsl:choose>
213 287
		</xsl:variable>
214
		
215
		<xsl:variable name="page_id"><xsl:value-of select="count(preceding::*[local-name()=$pagination-element])"/></xsl:variable>
216
		
217
		<xsl:if test="//tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))][following::*[local-name()=$pagination-element][1][count(preceding::*[local-name()=$pagination-element]) = $page_id]]">
288

  
289
		<xsl:variable name="page_id">
290
			<xsl:value-of
291
				select="count(preceding::*[local-name()=$pagination-element])" />
292
		</xsl:variable>
293

  
294
		<xsl:if
295
			test="//tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))][following::*[local-name()=$pagination-element][1][count(preceding::*[local-name()=$pagination-element]) = $page_id]]">
218 296
			<xsl:text>&#xa;</xsl:text>
219
			<br/>
220
			<br/>			
221
			<span style="display:block;border-top-style:solid;border-top-width:1px;border-top-color:gray;padding-top:5px">                                                
222
				<xsl:for-each select="//tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))][following::*[local-name()=$pagination-element][1][count(preceding::*[local-name()=$pagination-element]) = $page_id]]">
223
					<xsl:variable name="note_count"><xsl:value-of select="count(preceding::tei:note[not(@place='inline')]) + 1"/></xsl:variable>
224
					<!--<p><xsl:value-of select="$note_count"/>. <a href="#noteref_{$note_count}" name="note_{$note_count}">[<xsl:value-of select="preceding::tei:cb[1]/@xml:id"/>, l. <xsl:value-of select="preceding::tei:lb[1]/@n"/>]</a><xsl:text> </xsl:text> <xsl:value-of select="."/></p>-->
297
			<br />
298
			<br />
299
			<span
300
				style="display:block;border-top-style:solid;border-top-width:1px;border-top-color:gray;padding-top:5px">
301
				<xsl:for-each
302
					select="//tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))][following::*[local-name()=$pagination-element][1][count(preceding::*[local-name()=$pagination-element]) = $page_id]]">
303
					<xsl:variable name="note_count">
304
						<xsl:value-of
305
							select="count(preceding::tei:note[not(@place='inline')]) + 1" />
306
					</xsl:variable>
307
					<!--<p><xsl:value-of select="$note_count"/>. <a href="#noteref_{$note_count}" 
308
						name="note_{$note_count}">[<xsl:value-of select="preceding::tei:cb[1]/@xml:id"/>, 
309
						l. <xsl:value-of select="preceding::tei:lb[1]/@n"/>]</a><xsl:text> </xsl:text> 
310
						<xsl:value-of select="."/></p> -->
225 311
					<span class="note">
226
						<span style="position:absolute;left:-30px"><a href="#noteref_{$note_count}" name="note_{$note_count}"><xsl:value-of select="$note_count"/></a>. </span>
227
						<xsl:apply-templates mode="#current"/>
228
					</span>                                                                
229
				</xsl:for-each></span><xsl:text>&#xa;</xsl:text>                                                                
230
			
231
		</xsl:if>                                
232
		
312
						<span style="position:absolute;left:-30px">
313
							<a href="#noteref_{$note_count}" name="note_{$note_count}">
314
								<xsl:value-of select="$note_count" />
315
							</a>
316
							.
317
						</span>
318
						<xsl:apply-templates mode="#current" />
319
					</span>
320
				</xsl:for-each>
321
			</span>
322
			<xsl:text>&#xa;</xsl:text>
323

  
324
		</xsl:if>
325

  
233 326
		<xsl:text>&#xa;</xsl:text>
234
		<br/><xsl:text>&#xa;</xsl:text>
235
		<a class="txm-page" title="{count(preceding::*[local-name()=$pagination-element]) + $page-number-adjust}" next-word-id="{$next-word-id}"/>
236
		<span class="{$editionpagetype}"> - <xsl:value-of select="$pagenumber"/> - </span><br/><xsl:text>&#xa;</xsl:text>
327
		<br />
328
		<xsl:text>&#xa;</xsl:text>
329
		<a class="txm-page"
330
			title="{count(preceding::*[local-name()=$pagination-element]) + $page-number-adjust}"
331
			next-word-id="{$next-word-id}" />
332
		<span class="{$editionpagetype}">
333
			-
334
			<xsl:value-of select="$pagenumber" />
335
			-
336
		</span>
337
		<br />
338
		<xsl:text>&#xa;</xsl:text>
237 339
	</xsl:template>
238
	
340

  
239 341
	<!-- Notes -->
240
	<xsl:template match="tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))]">
241
		<!--<span style="color:violet"> [<b>Note :</b> <xsl:apply-templates/>] </span>-->	
242
		<xsl:variable name="note_count"><xsl:value-of select="count(preceding::tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))]) + 1"/></xsl:variable>
342
	<xsl:template
343
		match="tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))]">
344
		<!--<span style="color:violet"> [<b>Note :</b> <xsl:apply-templates/>] 
345
			</span> -->
346
		<xsl:variable name="note_count">
347
			<xsl:value-of
348
				select="count(preceding::tei:note[not(@place='inline') and not(matches(@type,'intern|auto'))]) + 1" />
349
		</xsl:variable>
243 350
		<xsl:variable name="note_content">
244 351
			<xsl:choose>
245 352
				<xsl:when test="descendant::txm:form">
246
					<xsl:for-each select="descendant::txm:form">						
247
						<xsl:value-of select="."/>
248
						<xsl:if test="not(matches(following::txm:form[1],'^[.,\)]')) and not(matches(.,'^\S+[''’]$|^[‘\(]$'))">
353
					<xsl:for-each select="descendant::txm:form">
354
						<xsl:value-of select="." />
355
						<xsl:if
356
							test="not(matches(following::txm:form[1],'^[.,\)]')) and not(matches(.,'^\S+[''’]$|^[‘\(]$'))">
249 357
							<xsl:text> </xsl:text>
250 358
						</xsl:if>
251 359
					</xsl:for-each>
252 360
				</xsl:when>
253
				<xsl:otherwise><xsl:value-of select="normalize-space(.)"/></xsl:otherwise>
361
				<xsl:otherwise>
362
					<xsl:value-of select="normalize-space(.)" />
363
				</xsl:otherwise>
254 364
			</xsl:choose>
255 365
		</xsl:variable>
256
		<a title="{$note_content}" style="font-size:75%;position:relative;top:-5px" href="#note_{$note_count}" name="noteref_{$note_count}">[<xsl:value-of select="$note_count"/>]</a>
257
		<xsl:call-template name="spacing"/>                                
366
		<a title="{$note_content}"
367
			style="font-size:75%;position:relative;top:-5px"
368
			href="#note_{$note_count}" name="noteref_{$note_count}">
369
			[
370
			<xsl:value-of select="$note_count" />
371
			]
372
		</a>
373
		<xsl:call-template name="spacing" />
258 374
	</xsl:template>
259
	
375

  
260 376
	<xsl:template match="tei:note[@place='inline']">
261 377
		<span class="noteinline">
262
			<xsl:apply-templates/>
378
			<xsl:apply-templates />
263 379
		</span>
264 380
	</xsl:template>
265
                
266
                <xsl:template match="//tei:w"><span class="w">
267
                	<xsl:choose>
268
                		<xsl:when test="descendant::tei:c//txm:form">
269
                			<xsl:apply-templates select="descendant::tei:c"/>
270
                		</xsl:when>
271
                		<xsl:otherwise>
272
                			<xsl:if test="@id">
273
                				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
274
                			</xsl:if>
275
                			<xsl:attribute name="title">
381

  
382
	<xsl:template match="//tei:w">
383
		<span class="w">
384
			<xsl:choose>
385
				<xsl:when test="descendant::tei:c//txm:form">
386
					<xsl:apply-templates select="descendant::tei:c" />
387
				</xsl:when>
388
				<xsl:otherwise>
389
					<xsl:if test="@id">
390
						<xsl:attribute name="id"><xsl:value-of
391
							select="@id" /></xsl:attribute>
392
					</xsl:if>
393
					<xsl:attribute name="title">
276 394
                				<xsl:if test="@id">
277 395
                					<xsl:value-of select="@id"></xsl:value-of>
278 396
                				</xsl:if>
279 397
                				<xsl:if test="ancestor::tei:corr">
280
                					<xsl:value-of select="concat(' sic : ',@sic)"/>
398
                					<xsl:value-of
399
						select="concat(' sic : ',@sic)" />
281 400
                				</xsl:if>
282 401
                				<xsl:if test="ancestor::tei:reg">
283
                					<xsl:value-of select="concat(' orig : ',@orig)"/>
402
                					<xsl:value-of
403
						select="concat(' orig : ',@orig)" />
284 404
                				</xsl:if>
285 405
                				<xsl:choose>
286 406
                					<xsl:when test="descendant::txm:ana">	
287
                						<xsl:for-each select="descendant::txm:ana">
288
                							<xsl:value-of select="concat(' ',substring-after(@type,'#'),' : ',.)"/>
407
                						<xsl:for-each
408
						select="descendant::txm:ana">
409
                							<xsl:value-of
410
						select="concat(' ',substring-after(@type,'#'),' : ',.)" />
289 411
                						</xsl:for-each>
290 412
                					</xsl:when>
291 413
                					<xsl:otherwise>
292
                						<xsl:for-each select="@*[not(local-name()='id')]">
293
                							<xsl:value-of select="concat(' ',name(.),' : ',.)"/>
414
                						<xsl:for-each
415
						select="@*[not(local-name()='id')]">
416
                							<xsl:value-of
417
						select="concat(' ',name(.),' : ',.)" />
294 418
                						</xsl:for-each>                                				
295 419
                					</xsl:otherwise>
296 420
                				</xsl:choose>
297 421
                				<xsl:if test="@*[matches(name(.),'pos$')]">
298 422
                				</xsl:if>                                		
299 423
                			</xsl:attribute>
300
                			<xsl:choose>
301
                				<xsl:when test="descendant::txm:form">
302
                					<xsl:apply-templates select="txm:form"/>
303
                				</xsl:when>
304
                				<xsl:otherwise><xsl:apply-templates/></xsl:otherwise>
305
                			</xsl:choose>
306
                		</xsl:otherwise>
307
                	</xsl:choose>
308
                                </span><xsl:call-template name="spacing"/></xsl:template>
309
                
310
<!--                <xsl:template match="//txm:form">
311
                                <xsl:apply-templates/>
312
                </xsl:template>
313
-->                
314
	
424
					<xsl:choose>
425
						<xsl:when test="descendant::txm:form">
426
							<xsl:apply-templates select="txm:form" />
427
						</xsl:when>
428
						<xsl:otherwise>
429
							<xsl:apply-templates />
430
						</xsl:otherwise>
431
					</xsl:choose>
432
				</xsl:otherwise>
433
			</xsl:choose>
434
		</span>
435
		<xsl:call-template name="spacing" />
436
	</xsl:template>
437

  
438
	<!-- <xsl:template match="//txm:form"> <xsl:apply-templates/> </xsl:template> -->
439

  
315 440
	<xsl:template match="//tei:c[descendant::txm:form]">
316 441
		<span class="c">
317 442
			<xsl:if test="@id">
318
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
443
				<xsl:attribute name="id"><xsl:value-of
444
					select="@id" /></xsl:attribute>
319 445
			</xsl:if>
320 446
			<xsl:attribute name="title">
321 447
				<xsl:if test="@id">
......
324 450
				<xsl:choose>
325 451
					<xsl:when test="descendant::txm:ana">	
326 452
						<xsl:for-each select="descendant::txm:ana">
327
							<xsl:if test="matches(@type,'expan|characters|letters-all|letters-alignable|abbr-n')">
328
								<xsl:value-of select="concat(' ',substring-after(@type,'#'),' : ',.)"/>
453
							<xsl:if
454
				test="matches(@type,'expan|characters|letters-all|letters-alignable|abbr-n')">
455
								<xsl:value-of
456
				select="concat(' ',substring-after(@type,'#'),' : ',.)" />
329 457
							</xsl:if>							
330 458
						</xsl:for-each>
331 459
					</xsl:when>
332 460
					<xsl:otherwise>
333 461
						<xsl:for-each select="@*[not(local-name()='id')]">
334
							<xsl:value-of select="concat(' ',name(.),' : ',.)"/>
462
							<xsl:value-of select="concat(' ',name(.),' : ',.)" />
335 463
						</xsl:for-each>                                				
336 464
					</xsl:otherwise>
337 465
				</xsl:choose>
......
340 468
			</xsl:attribute>
341 469
			<xsl:choose>
342 470
				<xsl:when test="descendant::txm:form">
343
					<xsl:apply-templates select="txm:form"/>
471
					<xsl:apply-templates select="txm:form" />
344 472
				</xsl:when>
345
				<xsl:otherwise><xsl:apply-templates/></xsl:otherwise>
473
				<xsl:otherwise>
474
					<xsl:apply-templates />
475
				</xsl:otherwise>
346 476
			</xsl:choose>
347
			
477

  
348 478
		</span>
349 479
	</xsl:template>
350
	
480

  
351 481
	<xsl:template name="spacing">
352 482
		<xsl:choose>
353 483
			<xsl:when test="$inputtype='xmltxm'">
354
				<xsl:call-template name="spacing-xmltxm"/>
484
				<xsl:call-template name="spacing-xmltxm" />
355 485
			</xsl:when>
356 486
			<xsl:otherwise>
357
				<xsl:call-template name="spacing-xmlw"/>
487
				<xsl:call-template name="spacing-xmlw" />
358 488
			</xsl:otherwise>
359 489
		</xsl:choose>
360 490
	</xsl:template>
361
	
491

  
362 492
	<xsl:template name="spacing-xmlw">
363 493
		<xsl:choose>
364
			<xsl:when test="ancestor::tei:w"/>
365
			<xsl:when test="following::tei:w[1][matches(.,'^\s*[.,)\]]+\s*$')]"/>			
494
			<xsl:when test="ancestor::tei:w" />
495
			<xsl:when
496
				test="following::tei:w[1][matches(.,'^\s*[.,)\]]+\s*$')]" />
366 497
			<xsl:when test="matches(.,'^\s*[(\[‘]+$|\w(''|’)\s*$')"></xsl:when>
367
			<xsl:when test="position()=last() and (ancestor::tei:choice or ancestor::tei:supplied[not(@rend='multi_s')])"></xsl:when>
498
			<xsl:when
499
				test="position()=last() and (ancestor::tei:choice or ancestor::tei:supplied[not(@rend='multi_s')])"></xsl:when>
368 500
			<xsl:when test="following-sibling::*[1][self::tei:note]"></xsl:when>
369
			<xsl:when test="following::tei:w[1][matches(.,'^\s*[:;!?]+\s*$')]">
501
			<xsl:when
502
				test="following::tei:w[1][matches(.,'^\s*[:;!?]+\s*$')]">
370 503
				<xsl:text>&#xa0;</xsl:text>
371 504
			</xsl:when>
372 505
			<xsl:otherwise>
373 506
				<xsl:text> </xsl:text>
374 507
			</xsl:otherwise>
375
		</xsl:choose>                
508
		</xsl:choose>
376 509
	</xsl:template>
377 510

  
378 511
	<xsl:template name="spacing-xmltxm">
379 512
		<xsl:choose>
380
			<xsl:when test="ancestor::tei:w"/>
381
			<xsl:when test="following::tei:w[1][matches(descendant::txm:form[1],'^[.,)\]]+$')]"/>			
382
			<xsl:when test="matches(descendant::txm:form[1],'^[(\[‘]+$|\w(''|’)$')"></xsl:when>
383
			<xsl:when test="position()=last() and (ancestor::tei:choice or ancestor::tei:supplied[not(@rend='multi_s')])"></xsl:when>
513
			<xsl:when test="ancestor::tei:w" />
514
			<xsl:when
515
				test="following::tei:w[1][matches(descendant::txm:form[1],'^[.,)\]]+$')]" />
516
			<xsl:when
517
				test="matches(descendant::txm:form[1],'^[(\[‘]+$|\w(''|’)$')"></xsl:when>
518
			<xsl:when
519
				test="position()=last() and (ancestor::tei:choice or ancestor::tei:supplied[not(@rend='multi_s')])"></xsl:when>
384 520
			<xsl:when test="following-sibling::*[1][self::tei:note]"></xsl:when>
385
			<xsl:when test="following::tei:w[1][matches(descendant::txm:form[1],'^[:;!?]+$')]">
521
			<xsl:when
522
				test="following::tei:w[1][matches(descendant::txm:form[1],'^[:;!?]+$')]">
386 523
				<xsl:text>&#xa0;</xsl:text>
387 524
			</xsl:when>
388 525
			<xsl:otherwise>
389 526
				<xsl:text> </xsl:text>
390 527
			</xsl:otherwise>
391
		</xsl:choose>                
528
		</xsl:choose>
392 529
	</xsl:template>
393 530

  
394
                
531

  
395 532
</xsl:stylesheet>

Also available in: Unified diff