allow strofa inside table + fix table border in html/epub + fix empty verses in epub
[librarian.git] / librarian / epub / xsltScheme.xsl
1 <?xml version="1.0" encoding="utf-8"?>
2 <xsl:stylesheet version="1.0"  xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:wl="http://wolnelektury.pl/functions" exclude-result-prefixes="mml wl">
3   <xsl:output method="html" version="1.0" encoding="utf-8" />
4   <xsl:output doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" />
5   <xsl:output doctype-public="-//W3C//DTD XHTML 1.1//EN" />
6
7   <xsl:template match="/" >
8     <xsl:element name="html" xmlns="http://www.w3.org/1999/xhtml">
9       <xsl:element name="head">
10         <link rel="stylesheet" href="style.css" type="text/css" />
11         <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
12         <title>
13           WolneLektury.pl
14         </title>
15       </xsl:element>
16       <xsl:element name="body" xmlns="http://www.w3.org/1999/xhtml">
17         <xsl:element name="div" xmlns="http://www.w3.org/1999/xhtml">
18           <xsl:attribute name="id">book-text</xsl:attribute>
19           <xsl:if test="//nazwa_utworu">
20             <!--h1 xmlns="http://www.w3.org/1999/xhtml"-->
21               <xsl:apply-templates select=" //nazwa_utworu" mode="poczatek"/>
22               <xsl:apply-templates select=" //podtytul" mode="poczatek"/>
23             <!--/h1-->
24           </xsl:if>
25           <xsl:apply-templates />
26         </xsl:element>
27       </xsl:element>
28     </xsl:element>
29   </xsl:template>
30
31   <!--===========================================================-->
32   <!-- Tagi BLOKOWE -->
33   <!--===========================================================-->
34
35   <xsl:template match="nota">
36     <div class="note" xmlns="http://www.w3.org/1999/xhtml">
37       <xsl:apply-templates />
38     </div>
39   </xsl:template>
40
41   <xsl:template match="lista_osob" >
42     <div class="person-list" xmlns="http://www.w3.org/1999/xhtml">
43       <div class="h3" xmlns="http://www.w3.org/1999/xhtml">
44         <xsl:apply-templates select="child::naglowek_listy" />
45       </div>
46       <ol xmlns="http://www.w3.org/1999/xhtml">
47         <xsl:apply-templates select="lista_osoba" />
48       </ol>
49     </div>
50   </xsl:template>
51
52   <xsl:template match="dedykacja">
53     <div class="dedication" xmlns="http://www.w3.org/1999/xhtml">
54       <xsl:apply-templates />
55     </div>
56   </xsl:template>
57
58   <xsl:template match="kwestia">
59     <div class="kwestia" xmlns="http://www.w3.org/1999/xhtml">
60       <xsl:apply-templates select="strofa|akapit|didaskalia|akap " />
61     </div>
62   </xsl:template>
63
64   <xsl:template match="dlugi_cytat|poezja_cyt">
65     <div class="block" xmlns="http://www.w3.org/1999/xhtml">
66       <xsl:apply-templates />
67     </div>
68   </xsl:template>
69
70   <xsl:template match="motto">
71     <div class="motto" xmlns="http://www.w3.org/1999/xhtml">
72       <xsl:apply-templates />
73     </div>
74   </xsl:template>
75
76   <xsl:template match="ilustr">
77     <img>
78       <xsl:attribute name="src">
79         <xsl:value-of select="@src" />
80       </xsl:attribute>
81       <xsl:attribute name="alt">
82         <xsl:value-of select="@alt" />
83       </xsl:attribute>
84       <xsl:attribute name="title">
85         <xsl:value-of select="@alt" />
86       </xsl:attribute>
87     </img>
88   </xsl:template>
89
90   <!--===========================================================-->
91   <!-- Tagi PARAGRAFOWE -->
92   <!--===========================================================-->
93
94   <xsl:template match="autor_utworu" mode="poczatek">
95     <h2 class="author" xmlns="http://www.w3.org/1999/xhtml">
96       <xsl:apply-templates />
97     </h2>
98   </xsl:template>
99
100   <xsl:template match="autor_utworu" />
101
102   <xsl:template match="dzielo_nadrzedne" mode="poczatek">
103     <h2 class="collection" xmlns="http://www.w3.org/1999/xhtml">
104       <xsl:apply-templates />
105     </h2>
106   </xsl:template>
107
108   <xsl:template match="dzielo_nadrzedne" />
109
110   <xsl:template match="nazwa_utworu" mode="poczatek" >
111     <h2 class="intitle" xmlns="http://www.w3.org/1999/xhtml">
112       <xsl:apply-templates />
113     </h2>
114   </xsl:template>
115
116   <xsl:template match="nazwa_utworu" />
117
118   <xsl:template match="podtytul" mode="poczatek">
119     <h2 class="insubtitle" xmlns="http://www.w3.org/1999/xhtml">
120       <xsl:apply-templates />
121     </h2>
122   </xsl:template>
123
124   <xsl:template match="podtytul" />
125
126   <xsl:template match="naglowek_czesc|srodtytul">
127     <h2 class="h2" xmlns="http://www.w3.org/1999/xhtml">
128       <xsl:apply-templates />
129     </h2>
130   </xsl:template>
131
132   <xsl:template match="naglowek_akt">
133     <h2 class="h2" xmlns="http://www.w3.org/1999/xhtml">
134       <xsl:apply-templates />
135     </h2>
136   </xsl:template>
137
138   <xsl:template match="naglowek_scena">
139     <a id="sub{@sub}" xmlns="http://www.w3.org/1999/xhtml"></a>
140     <h2 class="h3" xmlns="http://www.w3.org/1999/xhtml">
141       <xsl:apply-templates />
142     </h2>
143   </xsl:template>
144
145   <xsl:template match="naglowek_podrozdzial">
146     <a id="sub{@sub}" xmlns="http://www.w3.org/1999/xhtml"></a>
147     <h2 class="h4" xmlns="http://www.w3.org/1999/xhtml">
148       <xsl:apply-templates />
149     </h2>
150   </xsl:template>
151
152   <xsl:template match="naglowek_rozdzial">
153     <h2 class="h3" xmlns="http://www.w3.org/1999/xhtml">
154       <xsl:apply-templates />
155     </h2>
156   </xsl:template>
157
158   <xsl:template match="naglowek_osoba">
159     <h2 class="h4" xmlns="http://www.w3.org/1999/xhtml">
160       <xsl:apply-templates />
161     </h2>
162   </xsl:template>
163
164   <xsl:template match="miejsce_czas">
165     <div class="place-and-time" xmlns="http://www.w3.org/1999/xhtml">
166       <xsl:apply-templates />
167     </div>
168   </xsl:template>
169
170   <xsl:template match="didaskalia">
171     <div class="didaskalia" xmlns="http://www.w3.org/1999/xhtml">
172       <xsl:apply-templates />
173     </div>
174   </xsl:template>
175
176   <xsl:template match="akap|akap_dialog|akap_cd">
177     <p class="paragraph" xmlns="http://www.w3.org/1999/xhtml">
178       <xsl:apply-templates />
179     </p>
180   </xsl:template>
181
182   <xsl:template match="strofa">
183     <div class="stanza" xmlns="http://www.w3.org/1999/xhtml">
184       <xsl:apply-templates />
185     </div><div class='stanza-spacer' xmlns="http://www.w3.org/1999/xhtml">&#160;</div>
186   </xsl:template>
187
188   <xsl:template match="wers_normalny">
189     <div class="verse" xmlns="http://www.w3.org/1999/xhtml">
190       <xsl:apply-templates />
191     &#160;</div>
192   </xsl:template>
193
194   <xsl:template match="wers_akap">
195     <div class="verse" style="margin-left: 1em;" xmlns="http://www.w3.org/1999/xhtml">
196       <xsl:apply-templates />
197     &#160;</div>
198   </xsl:template>
199
200   <xsl:template match="wers_wciety">
201     <div class="verse" style='margin-left:1em;' xmlns="http://www.w3.org/1999/xhtml">
202       <xsl:apply-templates />
203     &#160;</div>
204   </xsl:template>
205
206   <xsl:template match="wers_do_prawej">
207     <div class="verse" style='text-align: right;' xmlns="http://www.w3.org/1999/xhtml">
208       <xsl:apply-templates/>
209     &#160;</div>
210   </xsl:template>
211
212   <xsl:template match="wers_wciety[@typ!='']">
213     <div class="verse" xmlns="http://www.w3.org/1999/xhtml">
214       <xsl:attribute name="style">
215           margin-left: <xsl:value-of select="@typ" />em;
216       </xsl:attribute>
217       <xsl:apply-templates />
218     &#160;</div>
219   </xsl:template>
220
221   <xsl:template match="wers_cd">
222     <div class="verse" style="margin-left: 12em;" xmlns="http://www.w3.org/1999/xhtml">
223       <xsl:apply-templates />
224     &#160;</div>
225   </xsl:template>
226
227   <xsl:template match="motto_podpis">
228     <div class="motto_podpis" xmlns="http://www.w3.org/1999/xhtml">
229       <xsl:apply-templates />
230     </div>
231   </xsl:template>
232
233   <!--===========================================================-->
234   <!-- Tagi LINIOWE -->
235   <!--===========================================================-->
236
237   <xsl:template match="slowo_obce">
238     <em class="foreign-word" xmlns="http://www.w3.org/1999/xhtml">
239       <xsl:apply-templates />
240     </em>
241   </xsl:template>
242
243   <xsl:template match="mat" >
244     <em class="math" xmlns="http://www.w3.org/1999/xhtml">
245       <xsl:apply-templates />
246     </em>
247   </xsl:template>
248
249   <xsl:template match="didask_tekst" >
250     <em class="didaskalia" xmlns="http://www.w3.org/1999/xhtml">
251       <xsl:apply-templates />
252     </em>
253   </xsl:template>
254
255   <xsl:template match="tytul_dziela" >
256     <em class="book-title" xmlns="http://www.w3.org/1999/xhtml">
257       <xsl:if test="@typ = '1'" >„</xsl:if>
258       <xsl:apply-templates />
259       <xsl:if test="@typ = '1'">”</xsl:if>
260     </em>
261   </xsl:template>
262
263   <xsl:template match="wyroznienie" >
264     <em class="author-emphasis" xmlns="http://www.w3.org/1999/xhtml">
265       <xsl:apply-templates />
266     </em>
267   </xsl:template>
268
269   <xsl:template match="wieksze_odstepy" >
270     <em class="wieksze-odstepy" xmlns="http://www.w3.org/1999/xhtml">
271       <xsl:apply-templates />
272     </em>
273   </xsl:template>
274
275   <xsl:template match="indeks_dolny" >
276     <sub xmlns="http://www.w3.org/1999/xhtml">
277       <xsl:apply-templates />
278     </sub>
279   </xsl:template>
280
281   <xsl:template match="osoba" >
282     <em class="person" xmlns="http://www.w3.org/1999/xhtml">
283       <xsl:apply-templates />
284     </em>
285   </xsl:template>
286
287   <xsl:template match="naglowek_listy"  >
288     <xsl:apply-templates />
289   </xsl:template>
290
291   <xsl:template match="lista_osoba" >
292     <li xmlns="http://www.w3.org/1999/xhtml">
293       <xsl:apply-templates />
294     </li>
295   </xsl:template>
296
297   <!--===========================================================-->
298   <!-- Tagi STANDALONE -->
299   <!--===========================================================-->
300
301   <xsl:template match="sekcja_swiatlo">
302     <p class="spacer" xmlns="http://www.w3.org/1999/xhtml">&#160;</p>
303   </xsl:template>
304
305   <xsl:template match="sekcja_asterysk">
306     <p class="spacer-asterisk" xmlns="http://www.w3.org/1999/xhtml">*</p>
307   </xsl:template>
308
309   <xsl:template match="separator_linia">
310     <hr class="spacer-line" xmlns="http://www.w3.org/1999/xhtml"></hr>
311   </xsl:template>
312
313   <!--===========================================================-->
314   <!-- Tagi SPECJALNE -->
315   <!--===========================================================-->
316
317   <xsl:template match="motyw" />
318
319 <xsl:template match="mat">
320     <img xmlns="http://www.w3.org/1999/xhtml">
321         <xsl:attribute name="src">
322             <xsl:value-of select="wl:mathml(.)" />
323         </xsl:attribute>
324     </img>
325 </xsl:template>
326
327 <xsl:template match="tabela|tabelka">
328     <xsl:choose>
329         <xsl:when test="@ramka = '1'">
330             <table class="border" xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates /></table>
331         </xsl:when>
332         <xsl:otherwise>
333             <table xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates /></table>
334         </xsl:otherwise>
335     </xsl:choose>
336 </xsl:template>
337 <xsl:template match="wiersz">
338   <tr xmlns="http://www.w3.org/1999/xhtml">
339       <xsl:apply-templates />
340   </tr>
341 </xsl:template>
342 <xsl:template match="kol">
343   <td xmlns="http://www.w3.org/1999/xhtml">
344      <xsl:apply-templates />
345   </td>
346 </xsl:template>
347
348
349   <!--===========================================================-->
350   <!-- Tagi IGNOROWANE -->
351   <!--===========================================================-->
352
353   <xsl:template match="extra" />
354
355   <xsl:template match="pe|pa|pr|pt" >
356     <a class="anchor" id="anchor-{.}" href="annotations.html#annotation-{.}"
357        xmlns="http://www.w3.org/1999/xhtml"><sup xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates /></sup></a>
358   </xsl:template>
359
360   <xsl:template match="uwaga" />
361
362   <xsl:template match="nota_red" />
363   <xsl:template match="abstrakt" />
364
365   <!--pominięcie tych metadanych-->
366   <xsl:template match="rdf:RDF" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />
367
368   <!--===========================================================-->
369   <!-- Tagi TEKSTOWE -->
370   <!--===========================================================-->
371
372   <xsl:template match="text()"  >
373     <xsl:value-of select="." />
374   </xsl:template>
375
376   <xsl:template match="text()" >
377     <xsl:value-of select="." />
378   </xsl:template>
379
380 </xsl:stylesheet>