]> matita.cs.unibo.it Git - helm.git/blob - helm/www/lambdadelta/xslt/lddl_library.xsl
planned dehyphenation of lambdadelta eventually took place!
[helm.git] / helm / www / lambdadelta / xslt / lddl_library.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4     ||M||  This file is part of HELM, an Hypertextual, Electronic        
5     ||A||  Library of Mathematics, developed at the Computer Science     
6     ||T||  Department, University of Bologna, Italy.                     
7     ||I||                                                                
8     ||T||  HELM is free software; you can redistribute it and/or         
9     ||A||  modify it under the terms of the GNU General Public License   
10     \   /  version 2 or (at your option) any later version.              
11      \ /   This software is distributed as is, NO WARRANTY.              
12       V_______________________________________________________________ -->
13
14 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
15                               xmlns:ld="http://lambdadelta.info"
16                               xmlns="http://www.w3.org/1999/xhtml"
17 >
18
19 <xsl:template name="sp">
20    <xsl:text> </xsl:text>
21 </xsl:template>
22
23 <xsl:template name="cm">
24    <xsl:text>, </xsl:text>
25 </xsl:template>
26
27 <xsl:template name="sl">
28    <xsl:text>/</xsl:text>
29 </xsl:template>
30
31 <xsl:template name="plus">
32    <xsl:text>+</xsl:text>
33 </xsl:template>
34
35 <xsl:template name="fs">
36    <xsl:text>.&#x200B;</xsl:text>
37 </xsl:template>
38
39 <xsl:template name="op">
40    <xsl:text>(</xsl:text>
41 </xsl:template>
42
43 <xsl:template name="cp">
44    <xsl:text>)</xsl:text>
45 </xsl:template>
46
47 <xsl:template name="ob">
48    <xsl:text>[</xsl:text>
49 </xsl:template>
50
51 <xsl:template name="cb">
52    <xsl:text>]</xsl:text>
53 </xsl:template>
54
55 <xsl:template name="oa">
56    <xsl:text>&lt;</xsl:text>
57 </xsl:template>
58
59 <xsl:template name="ca">
60    <xsl:text>&gt;</xsl:text>
61 </xsl:template>
62
63 <xsl:template name="cn">
64    <xsl:text>:</xsl:text>
65 </xsl:template>
66
67 <xsl:template name="eq">
68    <xsl:text>=</xsl:text>
69 </xsl:template>
70
71 <xsl:template name="qt">
72    <xsl:text>"</xsl:text>
73 </xsl:template>
74
75 <xsl:template name="idescr">
76    <xsl:text>Informal description: </xsl:text>
77 </xsl:template>
78
79 <xsl:template name="vpars">
80    <xsl:text>Validation parameters: </xsl:text>
81 </xsl:template>
82
83 <xsl:template name="shier">
84    <xsl:text>sort hierarchy = </xsl:text>
85 </xsl:template>
86
87 <xsl:template name="kopts">
88    <xsl:text>kernel options = </xsl:text>
89 </xsl:template>
90
91 <xsl:template name="multiple">
92    <span class="separator">
93       <xsl:call-template name="cm"/>
94    </span>
95 </xsl:template>
96
97 <xsl:template name="lambda">
98    <a title="{@mark}">
99       <xsl:choose>
100          <xsl:when test="@level=0">
101             <xsl:text disable-output-escaping="yes">&amp;Pi;</xsl:text>
102             <sup><xsl:value-of select="@level"/></sup>
103          </xsl:when>
104          <xsl:when test="@level=1">
105             <xsl:text disable-output-escaping="yes">&amp;Pi;</xsl:text>
106          </xsl:when>
107          <xsl:when test="@level=2">
108             <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
109          </xsl:when>
110          <xsl:when test="not(@level)">
111             <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
112             <sup><xsl:text disable-output-escaping="yes">&amp;infin;</xsl:text></sup>
113          </xsl:when>
114          <xsl:otherwise>
115             <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
116             <sup><xsl:value-of select="@level"/></sup>
117          </xsl:otherwise>
118       </xsl:choose>
119    </a>
120 </xsl:template>
121
122 <xsl:template name="delta">
123    <a title="{@mark}">
124       <xsl:text disable-output-escaping="yes">&amp;delta;</xsl:text>
125    </a>
126 </xsl:template>
127
128 <xsl:template name="chi">
129    <a title="{@mark}">
130       <xsl:text disable-output-escaping="yes">&amp;chi;</xsl:text>
131    </a>
132 </xsl:template>
133
134 <xsl:template name="position">
135    <xsl:variable name="index">
136       <xsl:value-of select="@position"/>
137       <xsl:if test="@offset != 0">
138          <xsl:call-template name="plus"/>
139          <xsl:value-of select="@offset"/>
140       </xsl:if>
141    </xsl:variable>
142    <a title="{$index}">
143       <xsl:value-of select="@name"/>
144    </a>
145 </xsl:template>
146
147 <xsl:template name="uri">
148    <xsl:variable name="url">
149       <xsl:value-of select="$baseurl"/>
150       <xsl:value-of select="substring-after(@uri,'ld:')"/>
151       <xsl:text>.html</xsl:text>
152    </xsl:variable>
153    <a href="{$url}" title="{@uri}"><xsl:value-of select="@name"/></a>
154 </xsl:template>
155
156 <xsl:template name="global">
157    <a title="{@mark}">
158       <xsl:value-of select="@name"/>
159    </a>
160 </xsl:template>
161
162 <xsl:template name="mk_names">
163    <xsl:param name="names">
164       <xsl:value-of select="normalize-space(@name)"/>
165       <xsl:call-template name="sp"/>
166    </xsl:param>
167    <xsl:param name="sep" select="false()"/>
168    <xsl:if test="$names and $sep">
169       <xsl:call-template name="multiple"/>
170    </xsl:if>
171    <xsl:if test="$names">
172       <span class="lref">
173          <xsl:value-of select="substring-before($names, ' ')"/>
174       </span>
175       <xsl:call-template name="mk_names">
176          <xsl:with-param name="names" select="substring-after($names, ' ')"/>
177          <xsl:with-param name="sep" select="true()"/>
178       </xsl:call-template>
179    </xsl:if>
180 </xsl:template>
181
182 <xsl:template name="mk_terms">
183    <xsl:for-each select="*">
184       <xsl:apply-templates select="."/>
185       <xsl:if test="(name()='Sort' or name()='LRef' or name()='GRef') and position()!=last()">
186          <xsl:call-template name="multiple"/>
187       </xsl:if>
188    </xsl:for-each>
189 </xsl:template>
190
191 <xsl:template name="mk_binder">
192    <xsl:param name="sep-seq"/>
193    <xsl:call-template name="ob"/>
194    <xsl:call-template name="mk_binder_rec1">
195       <xsl:with-param name="sep-seq" select="$sep-seq"/>
196    </xsl:call-template>
197    <xsl:call-template name="cb"/>
198 </xsl:template>
199
200 <xsl:template name="mk_binder_rec1">
201    <xsl:param name="sep-seq"/>
202    <xsl:param name="names">
203       <xsl:value-of select="normalize-space(@name)"/>
204       <xsl:call-template name="sp"/>
205    </xsl:param>
206    <xsl:param name="sep" select="false()"/>
207    <xsl:param name="start" select="true()"/>
208    <xsl:param name="pos" select="1"/>
209    <xsl:choose>
210       <xsl:when test="$start and $pos &lt;= count(*)">
211          <xsl:if test="$names and $sep">
212             <xsl:call-template name="multiple"/>
213          </xsl:if>
214          <span class="lref">
215             <xsl:value-of select="substring-before($names, ' ')"/>
216          </span>
217          <xsl:copy-of select="$sep-seq"/>
218          <xsl:call-template name="mk_binder_rec2">
219             <xsl:with-param name="names" select="substring-after($names, ' ')"/>
220             <xsl:with-param name="pos" select="$pos"/>
221             <xsl:with-param name="sep-seq" select="$sep-seq"/>
222          </xsl:call-template>
223       </xsl:when>
224       <xsl:when test="not($start) and $pos &lt;= count(*)">
225          <xsl:call-template name="mk_binder_rec2">
226             <xsl:with-param name="names" select="$names"/>
227             <xsl:with-param name="pos" select="$pos"/>
228             <xsl:with-param name="sep-seq" select="$sep-seq"/>
229          </xsl:call-template>
230       </xsl:when>
231    </xsl:choose>
232 </xsl:template>
233
234 <xsl:template name="mk_binder_rec2">
235    <xsl:param name="sep-seq"/>
236    <xsl:param name="names"/>
237    <xsl:param name="pos"/>
238    <xsl:apply-templates select="*[$pos]"/>
239    <xsl:call-template name="mk_binder_rec1">
240       <xsl:with-param name="sep-seq" select="$sep-seq"/>
241       <xsl:with-param name="names" select="$names"/>
242       <xsl:with-param name="sep" select="true()"/>
243       <xsl:with-param name="start" select="name(*[$pos])='Sort' or name(*[$pos])='LRef' or name(*[$pos])='GRef'"/>
244       <xsl:with-param name="pos" select="$pos+1"/>
245    </xsl:call-template>
246 </xsl:template>
247
248 <xsl:template name="mk_segment">
249    <xsl:param name="path"/>
250    <xsl:param name="name"/>
251    <xsl:variable name="url">
252       <xsl:value-of select="$baseurl"/>
253       <xsl:value-of select="substring-after($path,'ld:')"/>
254    </xsl:variable>
255    <a href="{$url}"><xsl:value-of select="$name"/></a>
256    <xsl:call-template name="sl"/>
257 </xsl:template>
258
259 <xsl:template name="mk_path">
260    <xsl:param name="rpath" select="@uri"/>
261    <xsl:variable name="newrpath" select="substring-after($rpath,'/')"/>
262    <xsl:choose>
263       <xsl:when test="$newrpath">
264          <xsl:variable name="segment" select="substring-before($rpath,$newrpath)"/>
265          <xsl:call-template name="mk_segment">
266             <xsl:with-param name="path" select="substring-before(@uri,$newrpath)"/>
267             <xsl:with-param name="name" select="substring-before($segment,'/')"/>
268          </xsl:call-template>
269          <xsl:call-template name="mk_path">
270             <xsl:with-param name="rpath" select="$newrpath"/>
271          </xsl:call-template>
272       </xsl:when>
273       <xsl:otherwise>
274          <xsl:variable name="path" select="substring-before(@uri,$rpath)"/>
275          <xsl:value-of select="substring-after(@uri,$path)"/>
276       </xsl:otherwise>
277    </xsl:choose>
278 </xsl:template>
279
280 <xsl:template name="lddl">
281    <xsl:text disable-output-escaping="yes">&amp;lambda;&amp;delta; Digital Library (LDDL)</xsl:text>
282 </xsl:template>
283
284 </xsl:stylesheet>