View File | Revision Log | Show Annotations | Download File | View Changeset
/hippo/hippo-cms-site-sample/transformers/library.xsl
Revision: 414
Committed: Fri Dec 9 13:45:01 2005 UTC (14 years, 11 months ago) by nvankampenhout
Content type: application/xml
File size: 11988 byte(s)
Error occurred while calculating annotation data.
Log Message:
initial checkin

File Contents

# Content
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:site="http://hippo.nl/site/1.0"
5 xmlns:str="http://exslt.org/strings"
6 exclude-result-prefixes="site"
7 extension-element-prefixes="str">
8
9
10 <xsl:template match="title">
11 <h3>
12 <xsl:value-of select="."/>
13 </h3>
14 </xsl:template>
15
16 <xsl:template match="em">
17 <xsl:if test="string-length(.) &gt; 0">
18 <em>
19 <xsl:apply-templates />
20 </em>
21 </xsl:if>
22 </xsl:template>
23
24 <xsl:template match="ul">
25 <ul>
26 <xsl:apply-templates />
27 </ul>
28 </xsl:template>
29
30
31 <xsl:template match="ol">
32 <ol type="{@type}" start="{@start}">
33 <xsl:apply-templates />
34 </ol>
35 </xsl:template>
36
37 <xsl:template match="li">
38 <li><xsl:apply-templates /></li>
39 </xsl:template>
40
41 <xsl:template match="strong[string-length(.)=0 and count(child::node())=0]"></xsl:template>
42
43 <xsl:template match="img">
44 <img>
45 <xsl:attribute name="src">
46 <xsl:text>repository</xsl:text>
47 <xsl:value-of select="@src"/>
48 </xsl:attribute>
49 <xsl:if test="@height"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if>
50 <xsl:if test="@width"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if>
51 <xsl:if test="@align"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if>
52 <xsl:attribute name="alt">
53 <xsl:choose>
54 <xsl:when test="@alt">
55 <xsl:value-of select="@alt"/>
56 </xsl:when>
57 <xsl:otherwise>
58 <xsl:value-of select="@href"/>
59 </xsl:otherwise>
60 </xsl:choose>
61 </xsl:attribute>
62 </img>
63 </xsl:template>
64
65 <xsl:template match="p">
66 <p style="padding:0px;">
67 <xsl:apply-templates select="child::node()"/>
68 </p>
69 </xsl:template>
70
71 <xsl:template match="ul">
72 <ul><xsl:if test="preceding-sibling::img[1] and preceding-sibling::*[1]/@align='left'"><xsl:attribute name="id">TUIINTRA-57</xsl:attribute></xsl:if><xsl:apply-templates select="li|ol|ul"/></ul>
73 </xsl:template>
74
75 <xsl:template match="ol">
76 <ol type="{@type}" start="{@start}"><xsl:if test="preceding-sibling::img[1] and preceding-sibling::*[1]/@align='left'"><xsl:attribute name="id">TUIINTRA-57</xsl:attribute></xsl:if><xsl:apply-templates select="li|ol|ul"/></ol>
77 </xsl:template>
78
79 <xsl:template match="li">
80 <li><xsl:apply-templates/></li>
81 </xsl:template>
82
83 <xsl:template match="section">
84 <xsl:apply-templates/>
85 </xsl:template>
86
87 <xsl:template match="h">
88 <h3><xsl:apply-templates select="node()"/></h3>
89 </xsl:template>
90
91 <xsl:template match="a">
92 <a>
93 <xsl:choose>
94 <xsl:when test="@type= 'mailto:' ">
95 <xsl:attribute name="href">mailto:<xsl:value-of select="@href"/></xsl:attribute>
96 <xsl:if test="string-length(normalize-space(@target)) &gt; 0">
97 <xsl:attribute name="target">
98 <xsl:value-of select="@target"/>
99 </xsl:attribute>
100 </xsl:if>
101 </xsl:when>
102 <xsl:otherwise>
103 <xsl:attribute name="href">
104 <!-- [JR] AB is this Correct?? -->
105 <xsl:if test="substring-before(@href,':/') = ''">ilink:</xsl:if>
106 <xsl:value-of select="@href"/>
107 </xsl:attribute>
108 <xsl:if test="string-length(normalize-space(@target)) &gt; 0">
109 <xsl:attribute name="target">
110 <xsl:value-of select="@target"/>
111 </xsl:attribute>
112 </xsl:if>
113 </xsl:otherwise>
114 </xsl:choose>
115 <xsl:choose>
116 <xsl:when test="count(img)&gt;0">
117 <xsl:apply-templates/>
118 </xsl:when>
119 <xsl:otherwise>
120 <xsl:apply-templates/>
121 </xsl:otherwise>
122 </xsl:choose>
123 </a>
124 </xsl:template>
125 <xsl:template match="doclink">
126 <a>
127 <xsl:attribute name="href">
128 <xsl:value-of select="@href"/>
129 </xsl:attribute>
130 <xsl:attribute name="target">
131 <xsl:value-of select="@target"/>
132 </xsl:attribute>
133 <xsl:apply-templates/>
134 <!-- fix for elements that where edited incorrectly -->
135 <xsl:if test="string-length(text())=0">&#160;</xsl:if>
136 </a>
137 </xsl:template>
138
139 <xsl:template match="p/table">
140 <table>
141 <xsl:choose>
142 <xsl:when test="number(@border) &gt; 0">
143 <xsl:attribute name="class">tuitable</xsl:attribute>
144 </xsl:when>
145 <xsl:otherwise>
146 <xsl:attribute name="class">no_border</xsl:attribute>
147 </xsl:otherwise>
148 </xsl:choose>
149 <xsl:choose>
150 <xsl:when test="@width">
151 <xsl:copy-of select="@width"/>
152 </xsl:when>
153 <xsl:otherwise>
154 <xsl:attribute name="width">100%</xsl:attribute>
155 </xsl:otherwise>
156 </xsl:choose>
157 <xsl:choose>
158 <xsl:when test="@cellspacing">
159 <xsl:copy-of select="@cellspacing"/>
160 </xsl:when>
161 <xsl:otherwise>
162 <xsl:attribute name="cellspacing">0</xsl:attribute>
163 </xsl:otherwise>
164 </xsl:choose>
165 <xsl:choose>
166 <xsl:when test="@cellpadding">
167 <xsl:copy-of select="@cellpadding"/>
168 </xsl:when>
169 <xsl:otherwise>
170 <xsl:attribute name="cellpadding">0</xsl:attribute>
171 </xsl:otherwise>
172 </xsl:choose>
173 <xsl:apply-templates/>
174 </table>
175 </xsl:template>
176
177 <xsl:template match="table[@equalcolumns='true' or @equalcolumns='1']/tr/th | table[@equalcolumns='true' or @equalcolumns='1']/tr/td">
178 <xsl:copy>
179 <xsl:attribute name="width">1%</xsl:attribute>
180 <xsl:apply-templates select="@*|node()"/>
181 </xsl:copy>
182 </xsl:template>
183
184 <xsl:template match="th|td">
185 <xsl:variable name="align">
186 <xsl:choose><xsl:when test="not(@align)">left</xsl:when>
187 <xsl:otherwise><xsl:value-of select="@align"/></xsl:otherwise></xsl:choose>
188 </xsl:variable>
189 <xsl:variable name="valign">
190 <xsl:choose><xsl:when test="not(@valign)">top</xsl:when>
191 <xsl:otherwise><xsl:value-of select="@valign"/></xsl:otherwise></xsl:choose>
192 </xsl:variable>
193 <xsl:copy>
194 <xsl:attribute name="align"><xsl:value-of select="$align"/></xsl:attribute>
195 <xsl:attribute name="valign"><xsl:value-of select="$valign"/></xsl:attribute>
196 <xsl:apply-templates select="@*[not(local-name() = 'align')][not(local-name() = 'valign')]|node()"/>
197 </xsl:copy>
198 </xsl:template>
199
200 <xsl:template match="p" mode="extranet">
201 <p style="padding:0px;">
202 <xsl:apply-templates select="child::node()" mode="extranet"/>
203 </p>
204 </xsl:template>
205
206 <xsl:template match="section" mode="extranet">
207 <xsl:apply-templates mode="extranet"/>
208 </xsl:template>
209
210 <xsl:template match="h" mode="extranet">
211 <h3><xsl:apply-templates select="node()" mode="extranet"/></h3>
212 </xsl:template>
213
214 <xsl:template match="a" mode="extranet">
215 <a>
216 <xsl:choose>
217 <xsl:when test="@type= 'mailto:' ">
218 <xsl:attribute name="href">mailto:<xsl:value-of
219 select="@href"/></xsl:attribute>
220 <xsl:attribute name="target">
221 <xsl:value-of select="@target"/>
222 </xsl:attribute>
223 </xsl:when>
224 <xsl:otherwise>
225 <xsl:attribute name="href">
226 <!-- [JR] AB is this Correct?? -->
227 <xsl:if test="substring-before(@href,':/') = ''">ilink:</xsl:if>
228 <xsl:value-of select="@href"/>
229 </xsl:attribute>
230 <xsl:attribute name="target">
231 <xsl:value-of select="@target"/>
232 </xsl:attribute>
233 </xsl:otherwise>
234 </xsl:choose>
235 <xsl:choose>
236 <xsl:when test="count(img)&gt;0">
237 <xsl:apply-templates mode="extranet"/>
238 </xsl:when>
239 <xsl:otherwise>
240 <xsl:apply-templates mode="extranet"/>
241 </xsl:otherwise>
242 </xsl:choose>
243 </a>
244 </xsl:template>
245 <xsl:template match="doclink" mode="extranet">
246 <a>
247 <xsl:attribute name="href">
248 <xsl:value-of select="@href"/>
249 </xsl:attribute>
250 <xsl:attribute name="target">
251 <xsl:value-of select="@target"/>
252 </xsl:attribute>
253 <xsl:apply-templates/>
254 <!-- fix for elements that where edited incorrectly -->
255 <xsl:if test="string-length(text())=0">&#160;</xsl:if>
256 </a>
257 </xsl:template>
258
259
260
261 <xsl:template match="em" mode="extranet">
262 <xsl:if test="string-length(.) &gt; 0">
263 <em>
264 <xsl:apply-templates mode="extranet"/>
265 </em>
266 </xsl:if>
267 </xsl:template>
268
269 <xsl:template match="ul" mode="extranet">
270 <ul>
271 <xsl:apply-templates mode="extranet"/>
272 </ul>
273 </xsl:template>
274
275
276 <xsl:template match="ol" mode="extranet">
277 <ol type="{@type}" start="{@start}">
278 <xsl:apply-templates mode="extranet"/>
279 </ol>
280 </xsl:template>
281
282 <xsl:template match="li" mode="extranet">
283 <li><xsl:apply-templates mode="extranet" /></li>
284 </xsl:template>
285
286 <xsl:template match="strong[string-length(.)=0 and count(child::node())=0]" mode="extranet"></xsl:template>
287
288 <xsl:template match="p/table" mode="extranet">
289 <table>
290 <xsl:choose>
291 <xsl:when test="number(@border) &gt; 0">
292 <xsl:attribute name="class">tuitable</xsl:attribute>
293 </xsl:when>
294 <xsl:otherwise>
295 <xsl:attribute name="class">no_border</xsl:attribute>
296 </xsl:otherwise>
297 </xsl:choose>
298 <xsl:choose>
299 <xsl:when test="@width">
300 <xsl:copy-of select="@width"/>
301 </xsl:when>
302 <xsl:otherwise>
303 <xsl:attribute name="width">100%</xsl:attribute>
304 </xsl:otherwise>
305 </xsl:choose>
306 <xsl:choose>
307 <xsl:when test="@cellspacing">
308 <xsl:copy-of select="@cellspacing"/>
309 </xsl:when>
310 <xsl:otherwise>
311 <xsl:attribute name="cellspacing">0</xsl:attribute>
312 </xsl:otherwise>
313 </xsl:choose>
314 <xsl:choose>
315 <xsl:when test="@cellpadding">
316 <xsl:copy-of select="@cellpadding"/>
317 </xsl:when>
318 <xsl:otherwise>
319 <xsl:attribute name="cellpadding">0</xsl:attribute>
320 </xsl:otherwise>
321 </xsl:choose>
322 <xsl:apply-templates/>
323 </table>
324 </xsl:template>
325
326 <xsl:template match="table[@equalcolumns='true' or @equalcolumns='1']/tr/th | table[@equalcolumns='true' or @equalcolumns='1']/tr/td" mode="extranet">
327 <xsl:copy>
328 <xsl:attribute name="width">1%</xsl:attribute>
329 <xsl:apply-templates select="@*|node()" mode="extranet"/>
330 </xsl:copy>
331 </xsl:template>
332
333 <xsl:template match="th|td" mode="extranet">
334 <xsl:variable name="align">
335 <xsl:choose><xsl:when test="not(@align)">left</xsl:when>
336 <xsl:otherwise><xsl:value-of select="@align"/></xsl:otherwise></xsl:choose>
337 </xsl:variable>
338 <xsl:variable name="valign">
339 <xsl:choose><xsl:when test="not(@valign)">top</xsl:when>
340 <xsl:otherwise><xsl:value-of select="@valign"/></xsl:otherwise></xsl:choose>
341 </xsl:variable>
342 <xsl:copy>
343 <xsl:attribute name="align"><xsl:value-of select="$align"/></xsl:attribute>
344 <xsl:attribute name="valign"><xsl:value-of select="$valign"/></xsl:attribute>
345 <xsl:apply-templates select="@*[not(local-name() = 'align')][not(local-name() = 'valign')]|node()"/>
346 </xsl:copy>
347 </xsl:template>
348
349 <xsl:template match="html|body|document|root">
350 <xsl:apply-templates/>
351 </xsl:template>
352
353 <xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template>
354
355 </xsl:stylesheet>