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