Statistics
| Revision:

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

History | View | Annotate | Download (8.7 kB)

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

    
3
<!--
4
                #######################################
5
                Qgraal_cm BASIC stylesheet
6
                
7
                #######################################
8
                author: Alexei Lavrentiev
9
                version: 1.2
10
                date: 2009-02-16
11
                
12
                version: 1.1
13
                date: 2008-09-30
14
                
15
                version: 1.0
16
                date: 2008-02-21
17
                
18
                #######################################
19
                Description
20
                This is a basic stylesheet for viewing BFM texts in XML-TEI
21
                Modified for QGRAAL modern French translation
22
                
23
-->
24
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
25
                version="1.0"> 
26

    
27
                <xsl:output method="html" encoding="utf-8" version="4.0" indent="yes"/>
28
                
29
                <xsl:strip-space elements="*"/>
30
                
31
                
32
                <xsl:template match="/">
33
<!--                                <html>
34
                                                <head>
35
                                                                <title>Quête du Graal (français moderne)</title>
36
                                                </head>
37
                                                <body style="margin-left:10%;margin-right:10%">-->
38
                                                                <xsl:apply-templates select="//tei:text"/>			
39
<!--                                                </body>		
40
                                </html>	-->
41
                </xsl:template>
42

    
43
                <!-- TEI-Header Processing -->
44
                
45
                <xsl:template match="//tei:teiHeader">
46
                </xsl:template>
47
                
48
                <!-- End of TEI-header processing -->
49
                
50
                <!-- Text body processing -->
51

    
52
                <!-- "Original" titles found sometimes immediately before text body -->
53
                <xsl:template match="//tei:div[@type='titre']">
54
                                <p align="center"><b><xsl:apply-templates/></b></p>
55
                </xsl:template>
56
                
57
                <!-- Text divisions (general) -->
58
                <xsl:template match="//tei:div[not(@type='titre')]">
59
                                <xsl:if test="child::tei:head">
60
                                                <xsl:apply-templates select="head"/><br/>                                                
61
                                </xsl:if>
62
                                <xsl:apply-templates select="*[not(self::tei:head)]"/>                                
63
                </xsl:template>
64
                
65
                <!-- Paragraphs -->
66
                <xsl:template match="//tei:text//tei:p">
67
                                <p align="justify"><xsl:apply-templates/></p>
68
                </xsl:template>
69
                
70

    
71
                
72
<!-- Page breaks -->                
73
              
74
                <xsl:template match="//tei:pb[@ed='Pauphilet1923']">
75
                                (p. <xsl:value-of select="@n"/>)
76
                </xsl:template>
77

    
78
                <xsl:template match="//tei:milestone[@unit='column']">
79
                                <br/><span style="color:darkviolet;font-family:arial;font-size:80%">&lt;<xsl:value-of select="@xml:id"/>&gt;</span>
80
                </xsl:template>
81
                
82

    
83
                <!-- Line breaks : note special processing for numbered lb used in BFM verse texts -->
84
                <xsl:template match="tei:lb">
85
                                                                <xsl:if test="not(parent::tei:p and not(preceding-sibling::*))"><br/></xsl:if>
86
                </xsl:template>
87
                
88
              
89
                <!-- Processing elements with "rend" attributes  -->
90
                
91
                <xsl:template match="//*[@rend='ital']">
92
                                <i><xsl:apply-templates/></i>
93
                </xsl:template>
94

    
95
                <xsl:template match="//*[@rend='gras']">
96
                                <b><xsl:apply-templates/></b>
97
                </xsl:template>
98
                
99
                <xsl:template match="//*[@rend='exp']">
100
                                <sup><xsl:apply-templates/></sup>
101
                </xsl:template>
102

    
103
                <xsl:template match="//*[@rend='ind']">
104
                                <sub><xsl:apply-templates/></sub>
105
                </xsl:template>
106
                
107
                <xsl:template match="//*[@rend='maj']">
108
                                <span style="text-transform:uppercase"><xsl:apply-templates/></span>
109
                </xsl:template>
110
                
111
                <xsl:template match="//*[@rend='pmaj']">
112
<span style="font-variant:small-caps"><xsl:apply-templates/></span>
113
                </xsl:template>
114
                
115
                <xsl:template match="//*[@rend='crochets']">[<xsl:apply-templates/>]</xsl:template>
116

    
117
                <xsl:template match="//*[@rend='chevrons']">
118
                                <xsl:text>&lt;</xsl:text><xsl:apply-templates/><xsl:text>&gt; </xsl:text>
119
                </xsl:template>
120
                                
121
                <xsl:template match="//*[@rend='crochets-ital']">
122
                                <xsl:text>[</xsl:text><i><xsl:apply-templates/></i><xsl:text>]</xsl:text>
123
                </xsl:template>
124
                                
125

    
126
                <!-- Numbers -->
127
                <xsl:template match="tei:num">
128
                                <span style="color:blue"><xsl:apply-templates/></span>
129
                </xsl:template>
130
                
131
                <!-- Notes -->
132
                <xsl:template match="tei:note">
133
                                <span style="color:violet"> [<b>Note :</b> <xsl:apply-templates/>] </span>	
134
                </xsl:template>
135
                
136
                <!-- Word formatting for morphologically tagged texts -->
137
                <xsl:strip-space elements="tei:s"/>
138
                <xsl:template match="//text()[starts-with(., ' ')][preceding-sibling::*[1][self::tei:w]]">
139
                                <xsl:copy-of select="substring(., 2)"/>
140
                </xsl:template>
141
                <xsl:template match="//tei:w">
142
                                <span title="{@type}" class="word" id="{@xml:id}" >
143
                                <xsl:variable name="apostrophe" select='"&apos;"'/>
144
                                <xsl:apply-templates/>
145
                                <xsl:choose>
146
                                                <xsl:when test="following::tei:w[1][starts-with(@type, 'pon')][contains(., ',') or contains(., '.') or contains(., ']')or contains(., ')')]">
147
                                                </xsl:when>
148
                                                <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(.), ')')]">
149
                                                </xsl:when>
150
                                                <xsl:when test="self::tei:w[starts-with(@type, 'pon')][contains(., '[') or contains(., '(')]">
151
                                                </xsl:when>
152
                                                <xsl:when test="substring(., string-length(.))=$apostrophe">
153
                                                </xsl:when>
154
                                                <xsl:when test="following::tei:w[1][starts-with(@type, 'pon')][contains(., ':') or contains(., ';') or contains(., '!')or contains(., '?')]">
155
                                                                <xsl:text>&#xa0;</xsl:text>
156
                                                </xsl:when>
157
                                                <xsl:otherwise>
158
                                                                <xsl:text> </xsl:text>
159
                                                </xsl:otherwise>
160
                                </xsl:choose>
161
                                                </span>
162
                </xsl:template>
163
                
164
<xsl:template match="tei:ptr"/>
165

    
166
                <!--  Direct speech, not currently tagged -->
167
                <xsl:template match="tei:q[ancestor::tei:q]">
168
                                <span style="background-color:cyan"> <xsl:apply-templates/></span>
169
                </xsl:template>
170
                
171
                <xsl:template match="tei:q[not(ancestor::tei:q)]">
172
                                <span style="background-color:lightcyan"> <xsl:apply-templates/></span>
173
                </xsl:template>
174
                
175
</xsl:stylesheet>