1 <?xml version="1.0" encoding="UTF-8"?>
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.
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_______________________________________________________________ -->
14 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
16 <xsl:variable name="sort">color: rgb(128, 0, 255);</xsl:variable>
17 <xsl:variable name="cast">color: rgb(255, 0, 0);</xsl:variable>
18 <xsl:variable name="binder">color: rgb(0, 160, 0);</xsl:variable>
19 <xsl:variable name="global">color: rgb(0, 0, 255);</xsl:variable>
21 <xsl:template name="sp">
22 <xsl:text> </xsl:text>
25 <xsl:template name="cm">
26 <xsl:text>, </xsl:text>
29 <xsl:template name="sl">
30 <xsl:text>/</xsl:text>
33 <xsl:template name="plus">
34 <xsl:text>+</xsl:text>
37 <xsl:template name="fs">
38 <xsl:text>.​</xsl:text>
41 <xsl:template name="op">
42 <xsl:text>(</xsl:text>
45 <xsl:template name="cp">
46 <xsl:text>)</xsl:text>
49 <xsl:template name="ob">
50 <span style="{$binder}">
51 <xsl:text>[</xsl:text>
55 <xsl:template name="cb">
56 <span style="{$binder}">
57 <xsl:text>]</xsl:text>
61 <xsl:template name="oa">
62 <span style="{$cast}">
63 <xsl:text><</xsl:text>
67 <xsl:template name="ca">
68 <span style="{$cast}">
69 <xsl:text>></xsl:text>
73 <xsl:template name="cn">
74 <span style="{$binder}">
75 <xsl:text>:</xsl:text>
79 <xsl:template name="eq">
80 <span style="{$binder}">
81 <xsl:text>=</xsl:text>
85 <xsl:template name="lambda">
86 <a name="" title="{@mark}">
87 <span style="{$binder}">
88 <xsl:text disable-output-escaping="yes">&lambda;</xsl:text>
93 <xsl:template name="delta">
94 <a name="" title="{@mark}">
95 <span style="{$binder}">
96 <xsl:text disable-output-escaping="yes">&delta;</xsl:text>
101 <xsl:template name="chi">
102 <a name="" title="{@mark}">
103 <span style="{$binder}">
104 <xsl:text disable-output-escaping="yes">&chi;</xsl:text>
109 <xsl:template name="position">
110 <xsl:variable name="index">
111 <xsl:value-of select="@position"/>
112 <xsl:if test="@offset != 0">
113 <xsl:call-template name="plus"/>
114 <xsl:value-of select="@offset"/>
117 <a name="" title="{$index}">
118 <xsl:value-of select="@name"/>
122 <xsl:template name="uri">
123 <xsl:variable name="url">
124 <xsl:value-of select="$baseurl"/>
125 <xsl:value-of select="substring-after(@uri,'ld:')"/>
126 <xsl:text>.html</xsl:text>
128 <a href="{$url}" title="{@uri}"><xsl:value-of select="@name"/></a>
131 <xsl:template name="global">
132 <span style="{$global}">
133 <a name="" title="{@mark}">
134 <xsl:value-of select="@name"/>
139 <xsl:template name="mk_names">
140 <xsl:param name="names">
141 <xsl:value-of select="normalize-space(@name)"/>
142 <xsl:call-template name="sp"/>
144 <xsl:param name="sep" select="false()"/>
145 <xsl:if test="$names and $sep">
146 <xsl:call-template name="cm"/>
148 <xsl:if test="$names">
149 <xsl:value-of select="substring-before($names, ' ')"/>
150 <xsl:call-template name="mk_names">
151 <xsl:with-param name="names" select="substring-after($names, ' ')"/>
152 <xsl:with-param name="sep" select="true()"/>
157 <xsl:template name="mk_terms">
158 <xsl:for-each select="*">
159 <xsl:apply-templates select="."/>
160 <xsl:if test="(name()='Sort' or name()='LRef' or name()='GRef') and position()!=last()">
161 <xsl:call-template name="cm"/>
166 <xsl:template name="mk_binder">
167 <xsl:param name="sep-seq"/>
168 <xsl:call-template name="ob"/>
169 <xsl:call-template name="mk_binder_rec1">
170 <xsl:with-param name="sep-seq" select="$sep-seq"/>
172 <xsl:call-template name="cb"/>
173 <xsl:call-template name="fs"/>
176 <xsl:template name="mk_binder_rec1">
177 <xsl:param name="sep-seq"/>
178 <xsl:param name="names">
179 <xsl:value-of select="normalize-space(@name)"/>
180 <xsl:call-template name="sp"/>
182 <xsl:param name="sep" select="false()"/>
183 <xsl:param name="start" select="true()"/>
184 <xsl:param name="pos" select="1"/>
186 <xsl:when test="$start and $pos <= count(*)">
187 <xsl:if test="$names and $sep">
188 <xsl:call-template name="cm"/>
190 <xsl:value-of select="substring-before($names, ' ')"/>
191 <xsl:copy-of select="$sep-seq"/>
192 <xsl:call-template name="mk_binder_rec2">
193 <xsl:with-param name="names" select="substring-after($names, ' ')"/>
194 <xsl:with-param name="pos" select="$pos"/>
195 <xsl:with-param name="sep-seq" select="$sep-seq"/>
198 <xsl:when test="not($start) and $pos <= count(*)">
199 <xsl:call-template name="mk_binder_rec2">
200 <xsl:with-param name="names" select="$names"/>
201 <xsl:with-param name="pos" select="$pos"/>
202 <xsl:with-param name="sep-seq" select="$sep-seq"/>
208 <xsl:template name="mk_binder_rec2">
209 <xsl:param name="sep-seq"/>
210 <xsl:param name="names"/>
211 <xsl:param name="pos"/>
212 <xsl:apply-templates select="*[$pos]"/>
213 <xsl:call-template name="mk_binder_rec1">
214 <xsl:with-param name="sep-seq" select="$sep-seq"/>
215 <xsl:with-param name="names" select="$names"/>
216 <xsl:with-param name="sep" select="true()"/>
217 <xsl:with-param name="start" select="name(*[$pos])='Sort' or name(*[$pos])='LRef' or name(*[$pos])='GRef'"/>
218 <xsl:with-param name="pos" select="$pos+1"/>
222 <xsl:template name="mk_segment">
223 <xsl:param name="path"/>
224 <xsl:param name="name"/>
225 <xsl:variable name="url">
226 <xsl:value-of select="$baseurl"/>
227 <xsl:value-of select="substring-after($path,'ld:')"/>
229 <a href="{$url}"><xsl:value-of select="$name"/></a>
230 <xsl:call-template name="sl"/>
233 <xsl:template name="mk_path">
234 <xsl:param name="rpath" select="@uri"/>
235 <xsl:variable name="newrpath" select="substring-after($rpath,'/')"/>
237 <xsl:when test="$newrpath">
238 <xsl:variable name="segment" select="substring-before($rpath,$newrpath)"/>
239 <xsl:call-template name="mk_segment">
240 <xsl:with-param name="path" select="substring-before(@uri,$newrpath)"/>
241 <xsl:with-param name="name" select="substring-before($segment,'/')"/>
243 <xsl:call-template name="mk_path">
244 <xsl:with-param name="rpath" select="$newrpath"/>
248 <xsl:variable name="path" select="substring-before(@uri,$rpath)"/>
249 <xsl:value-of select="substring-after(@uri,$path)"/>
254 <xsl:template name="entity">
255 <xsl:call-template name="sp"/>
256 <xsl:call-template name="global"/>
257 <xsl:call-template name="sp"/>
258 <xsl:call-template name="op"/>
259 <xsl:call-template name="mk_path"/>
260 <xsl:call-template name="cp"/>
263 <xsl:template name="META">
264 <div>Informal description: "<xsl:value-of select="@meta"/>"</div><h2/>
267 <xsl:template name="ld">
268 <xsl:text disable-output-escaping="yes">&lambda;&delta;</xsl:text>