]> matita.cs.unibo.it Git - helm.git/blob - helm/www/lambdadelta/xslt/lddl_library.xsl
- xslt and Makefile improved, web pages regenerated
[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="lddlbaseurl">
148    <xsl:value-of select="$baseurl"/>
149    <xsl:value-of select="'static/lddl'"/>
150 </xsl:template>
151
152 <xsl:template name="uri">
153    <xsl:variable name="url">
154       <xsl:call-template name="lddlbaseurl">
155       <xsl:value-of select="substring-after(@uri,'ld:')"/>
156       <xsl:text>.html</xsl:text>
157    </xsl:variable>
158    <a href="{$url}" title="{@uri}"><xsl:value-of select="@name"/></a>
159 </xsl:template>
160
161 <xsl:template name="global">
162    <a title="{@mark}">
163       <xsl:value-of select="@name"/>
164    </a>
165 </xsl:template>
166
167 <xsl:template name="mk_names">
168    <xsl:param name="names">
169       <xsl:value-of select="normalize-space(@name)"/>
170       <xsl:call-template name="sp"/>
171    </xsl:param>
172    <xsl:param name="sep" select="false()"/>
173    <xsl:if test="$names and $sep">
174       <xsl:call-template name="multiple"/>
175    </xsl:if>
176    <xsl:if test="$names">
177       <span class="lref">
178          <xsl:value-of select="substring-before($names, ' ')"/>
179       </span>
180       <xsl:call-template name="mk_names">
181          <xsl:with-param name="names" select="substring-after($names, ' ')"/>
182          <xsl:with-param name="sep" select="true()"/>
183       </xsl:call-template>
184    </xsl:if>
185 </xsl:template>
186
187 <xsl:template name="mk_terms">
188    <xsl:for-each select="*">
189       <xsl:apply-templates select="."/>
190       <xsl:if test="(name()='Sort' or name()='LRef' or name()='GRef') and position()!=last()">
191          <xsl:call-template name="multiple"/>
192       </xsl:if>
193    </xsl:for-each>
194 </xsl:template>
195
196 <xsl:template name="mk_binder">
197    <xsl:param name="sep-seq"/>
198    <xsl:call-template name="ob"/>
199    <xsl:call-template name="mk_binder_rec1">
200       <xsl:with-param name="sep-seq" select="$sep-seq"/>
201    </xsl:call-template>
202    <xsl:call-template name="cb"/>
203 </xsl:template>
204
205 <xsl:template name="mk_binder_rec1">
206    <xsl:param name="sep-seq"/>
207    <xsl:param name="names">
208       <xsl:value-of select="normalize-space(@name)"/>
209       <xsl:call-template name="sp"/>
210    </xsl:param>
211    <xsl:param name="sep" select="false()"/>
212    <xsl:param name="start" select="true()"/>
213    <xsl:param name="pos" select="1"/>
214    <xsl:choose>
215       <xsl:when test="$start and $pos &lt;= count(*)">
216          <xsl:if test="$names and $sep">
217             <xsl:call-template name="multiple"/>
218          </xsl:if>
219          <span class="lref">
220             <xsl:value-of select="substring-before($names, ' ')"/>
221          </span>
222          <xsl:copy-of select="$sep-seq"/>
223          <xsl:call-template name="mk_binder_rec2">
224             <xsl:with-param name="names" select="substring-after($names, ' ')"/>
225             <xsl:with-param name="pos" select="$pos"/>
226             <xsl:with-param name="sep-seq" select="$sep-seq"/>
227          </xsl:call-template>
228       </xsl:when>
229       <xsl:when test="not($start) and $pos &lt;= count(*)">
230          <xsl:call-template name="mk_binder_rec2">
231             <xsl:with-param name="names" select="$names"/>
232             <xsl:with-param name="pos" select="$pos"/>
233             <xsl:with-param name="sep-seq" select="$sep-seq"/>
234          </xsl:call-template>
235       </xsl:when>
236    </xsl:choose>
237 </xsl:template>
238
239 <xsl:template name="mk_binder_rec2">
240    <xsl:param name="sep-seq"/>
241    <xsl:param name="names"/>
242    <xsl:param name="pos"/>
243    <xsl:apply-templates select="*[$pos]"/>
244    <xsl:call-template name="mk_binder_rec1">
245       <xsl:with-param name="sep-seq" select="$sep-seq"/>
246       <xsl:with-param name="names" select="$names"/>
247       <xsl:with-param name="sep" select="true()"/>
248       <xsl:with-param name="start" select="name(*[$pos])='Sort' or name(*[$pos])='LRef' or name(*[$pos])='GRef'"/>
249       <xsl:with-param name="pos" select="$pos+1"/>
250    </xsl:call-template>
251 </xsl:template>
252
253 <xsl:template name="mk_segment">
254    <xsl:param name="path"/>
255    <xsl:param name="name"/>
256    <xsl:variable name="url">
257       <xsl:call-template name="lddlbaseurl">
258       <xsl:value-of select="substring-after($path,'ld:')"/>
259    </xsl:variable>
260    <a href="{$url}"><xsl:value-of select="$name"/></a>
261    <xsl:call-template name="sl"/>
262 </xsl:template>
263
264 <xsl:template name="mk_path">
265    <xsl:param name="rpath" select="@uri"/>
266    <xsl:variable name="newrpath" select="substring-after($rpath,'/')"/>
267    <xsl:choose>
268       <xsl:when test="$newrpath">
269          <xsl:variable name="segment" select="substring-before($rpath,$newrpath)"/>
270          <xsl:call-template name="mk_segment">
271             <xsl:with-param name="path" select="substring-before(@uri,$newrpath)"/>
272             <xsl:with-param name="name" select="substring-before($segment,'/')"/>
273          </xsl:call-template>
274          <xsl:call-template name="mk_path">
275             <xsl:with-param name="rpath" select="$newrpath"/>
276          </xsl:call-template>
277       </xsl:when>
278       <xsl:otherwise>
279          <xsl:variable name="path" select="substring-before(@uri,$rpath)"/>
280          <xsl:value-of select="substring-after(@uri,$path)"/>
281       </xsl:otherwise>
282    </xsl:choose>
283 </xsl:template>
284
285 <xsl:template name="lddl">
286    <xsl:text disable-output-escaping="yes">&amp;lambda;&amp;delta; Digital Library (LDDL)</xsl:text>
287 </xsl:template>
288
289 </xsl:stylesheet>