]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/lambda-delta/xml/ld-html-library.xsl
we updated the css validation icon
[helm.git] / helm / software / lambda-delta / xml / ld-html-library.xsl
index 3479c3038176884dd8a772300c91c1027285e5ec..5cb16515b28c7853de3c40259da974bd81a9fcf8 100644 (file)
      \ /   This software is distributed as is, NO WARRANTY.              
       V_______________________________________________________________ -->
 
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:variable name="sort">color: rgb(128, 0, 255);</xsl:variable>
-<xsl:variable name="cast">color: rgb(255, 0, 0);</xsl:variable>
-<xsl:variable name="binder">color: rgb(0, 160, 0);</xsl:variable>
-<xsl:variable name="global">color: rgb(0, 0, 255);</xsl:variable>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                              xmlns="http://www.w3.org/1999/xhtml"
+>
 
 <xsl:template name="sp">
    <xsl:text> </xsl:text>
 </xsl:template>
 
+<xsl:template name="cm">
+   <xsl:text>, </xsl:text>
+</xsl:template>
+
 <xsl:template name="sl">
    <xsl:text>/</xsl:text>
 </xsl:template>
 
+<xsl:template name="plus">
+   <xsl:text>+</xsl:text>
+</xsl:template>
+
 <xsl:template name="fs">
    <xsl:text>.&#x200B;</xsl:text>
 </xsl:template>
    <xsl:text>)</xsl:text>
 </xsl:template>
 
+<xsl:template name="ob">
+   <xsl:text>[</xsl:text>
+</xsl:template>
+
+<xsl:template name="cb">
+   <xsl:text>]</xsl:text>
+</xsl:template>
+
 <xsl:template name="oa">
-   <span style="{$cast}">
-      <xsl:text>&lt;</xsl:text>
-   </span>
+   <xsl:text>&lt;</xsl:text>
 </xsl:template>
 
 <xsl:template name="ca">
-   <span style="{$cast}">
-      <xsl:text>&gt;</xsl:text>
-   </span>
+   <xsl:text>&gt;</xsl:text>
 </xsl:template>
 
 <xsl:template name="cn">
-   <span style="{$binder}">
-      <xsl:text>:</xsl:text>
-   </span>
+   <xsl:text>:</xsl:text>
 </xsl:template>
 
 <xsl:template name="eq">
-   <span style="{$binder}">
-      <xsl:text>=</xsl:text>
+   <xsl:text>=</xsl:text>
+</xsl:template>
+
+<xsl:template name="multiple">
+   <span class="separator">
+      <xsl:call-template name="cm"/>
    </span>
 </xsl:template>
 
 <xsl:template name="lambda">
-   <span style="{$binder}">
-      <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
-   </span>
+   <a title="{@mark}">
+      <xsl:choose>
+        <xsl:when test="@level=0">
+           <xsl:text disable-output-escaping="yes">&amp;Pi;</xsl:text>
+            <sup><xsl:value-of select="@level"/></sup>
+        </xsl:when>
+        <xsl:when test="@level=1">
+           <xsl:text disable-output-escaping="yes">&amp;Pi;</xsl:text>
+        </xsl:when>
+        <xsl:when test="@level=2">
+           <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
+        </xsl:when>
+        <xsl:when test="not(@level)">
+           <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
+           <sup><xsl:text disable-output-escaping="yes">&amp;infin;</xsl:text></sup>
+        </xsl:when>
+        <xsl:otherwise>
+           <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
+            <sup><xsl:value-of select="@level"/></sup>
+        </xsl:otherwise>
+      </xsl:choose>
+   </a>
 </xsl:template>
 
 <xsl:template name="delta">
-   <span style="{$binder}">
+   <a title="{@mark}">
       <xsl:text disable-output-escaping="yes">&amp;delta;</xsl:text>
-   </span>
+   </a>
 </xsl:template>
 
 <xsl:template name="chi">
-   <span style="{$binder}">
+   <a title="{@mark}">
       <xsl:text disable-output-escaping="yes">&amp;chi;</xsl:text>
-   </span>
+   </a>
 </xsl:template>
 
 <xsl:template name="position">
-   <a name="" title="{@position}">
+   <xsl:variable name="index">
+      <xsl:value-of select="@position"/>
+      <xsl:if test="@offset != 0">
+         <xsl:call-template name="plus"/>
+        <xsl:value-of select="@offset"/>
+      </xsl:if>
+   </xsl:variable>
+   <a title="{$index}">
       <xsl:value-of select="@name"/>
    </a>
 </xsl:template>
    <a href="{$url}" title="{@uri}"><xsl:value-of select="@name"/></a>
 </xsl:template>
 
-<xsl:template name="binder">
-   <xsl:value-of select="@name"/>
-</xsl:template>
-
 <xsl:template name="global">
-   <span style="{$global}">
+   <a title="{@mark}">
       <xsl:value-of select="@name"/>
-   </span>   
+   </a>
+</xsl:template>
+
+<xsl:template name="mk_names">
+   <xsl:param name="names">
+      <xsl:value-of select="normalize-space(@name)"/>
+      <xsl:call-template name="sp"/>
+   </xsl:param>
+   <xsl:param name="sep" select="false()"/>
+   <xsl:if test="$names and $sep">
+      <xsl:call-template name="multiple"/>
+   </xsl:if>
+   <xsl:if test="$names">
+      <span class="lref">
+         <xsl:value-of select="substring-before($names, ' ')"/>
+      </span>
+      <xsl:call-template name="mk_names">
+         <xsl:with-param name="names" select="substring-after($names, ' ')"/>
+         <xsl:with-param name="sep" select="true()"/>
+      </xsl:call-template>
+   </xsl:if>
+</xsl:template>
+
+<xsl:template name="mk_terms">
+   <xsl:for-each select="*">
+      <xsl:apply-templates select="."/>
+      <xsl:if test="(name()='Sort' or name()='LRef' or name()='GRef') and position()!=last()">
+         <xsl:call-template name="multiple"/>
+      </xsl:if>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="mk_binder">
+   <xsl:param name="sep-seq"/>
+   <xsl:call-template name="ob"/>
+   <xsl:call-template name="mk_binder_rec1">
+      <xsl:with-param name="sep-seq" select="$sep-seq"/>
+   </xsl:call-template>
+   <xsl:call-template name="cb"/>
+</xsl:template>
+
+<xsl:template name="mk_binder_rec1">
+   <xsl:param name="sep-seq"/>
+   <xsl:param name="names">
+      <xsl:value-of select="normalize-space(@name)"/>
+      <xsl:call-template name="sp"/>
+   </xsl:param>
+   <xsl:param name="sep" select="false()"/>
+   <xsl:param name="start" select="true()"/>
+   <xsl:param name="pos" select="1"/>
+   <xsl:choose>
+      <xsl:when test="$start and $pos &lt;= count(*)">
+         <xsl:if test="$names and $sep">
+            <xsl:call-template name="multiple"/>
+         </xsl:if>
+         <span class="lref">
+           <xsl:value-of select="substring-before($names, ' ')"/>
+        </span>
+         <xsl:copy-of select="$sep-seq"/>
+        <xsl:call-template name="mk_binder_rec2">
+            <xsl:with-param name="names" select="substring-after($names, ' ')"/>
+            <xsl:with-param name="pos" select="$pos"/>
+            <xsl:with-param name="sep-seq" select="$sep-seq"/>
+         </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="not($start) and $pos &lt;= count(*)">
+         <xsl:call-template name="mk_binder_rec2">
+            <xsl:with-param name="names" select="$names"/>
+            <xsl:with-param name="pos" select="$pos"/>
+            <xsl:with-param name="sep-seq" select="$sep-seq"/>
+         </xsl:call-template>
+      </xsl:when>
+   </xsl:choose>
+</xsl:template>
+
+<xsl:template name="mk_binder_rec2">
+   <xsl:param name="sep-seq"/>
+   <xsl:param name="names"/>
+   <xsl:param name="pos"/>
+   <xsl:apply-templates select="*[$pos]"/>
+   <xsl:call-template name="mk_binder_rec1">
+      <xsl:with-param name="sep-seq" select="$sep-seq"/>
+      <xsl:with-param name="names" select="$names"/>
+      <xsl:with-param name="sep" select="true()"/>
+      <xsl:with-param name="start" select="name(*[$pos])='Sort' or name(*[$pos])='LRef' or name(*[$pos])='GRef'"/>
+      <xsl:with-param name="pos" select="$pos+1"/>
+   </xsl:call-template>
 </xsl:template>
 
 <xsl:template name="mk_segment">
    <xsl:variable name="newrpath" select="substring-after($rpath,'/')"/>
    <xsl:choose>
       <xsl:when test="$newrpath">
-         <xsl:variable name="segment" select="substring-before($rpath,$newrpath)"/>   
+         <xsl:variable name="segment" select="substring-before($rpath,$newrpath)"/>
          <xsl:call-template name="mk_segment">
             <xsl:with-param name="path" select="substring-before(@uri,$newrpath)"/>
             <xsl:with-param name="name" select="substring-before($segment,'/')"/>
    </xsl:choose>
 </xsl:template>
 
-<xsl:template name="entry">
+<xsl:template name="entity">
    <xsl:call-template name="sp"/>
-   <xsl:call-template name="global"/>
+   <span class="gref">   
+      <xsl:call-template name="global"/>
+   </span>
    <xsl:call-template name="sp"/>
    <xsl:call-template name="op"/>
-   <xsl:call-template name="mk_path"/>
+   <span class="gref">
+      <xsl:call-template name="mk_path"/>
+   </span>
    <xsl:call-template name="cp"/>
 </xsl:template>
 
+<xsl:template name="META">
+   <div>Informal description: "<xsl:value-of select="@meta"/>"</div><br/>
+</xsl:template>
+
+<xsl:template name="ld">
+   <xsl:text disable-output-escaping="yes">&amp;lambda;&amp;delta;</xsl:text>
+</xsl:template>
+
 </xsl:stylesheet>