]> matita.cs.unibo.it Git - helm.git/commitdiff
we can now generate static html pages about crg terms
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Tue, 17 Aug 2010 14:38:30 +0000 (14:38 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Tue, 17 Aug 2010 14:38:30 +0000 (14:38 +0000)
helm/software/lambda-delta/xml/ld-html-library.xsl
helm/software/lambda-delta/xml/ld-html-root.xsl
helm/software/lambda-delta/xml/ld-html-term.xsl

index 86e7c449de06431f4ba8b5b84667f180b4eff374..2094c2a87929dbae5278af3b6bcf71e22ada6fad 100644 (file)
    <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">
+   <span style="{$binder}">
+      <xsl:text>[</xsl:text>
+   </span>
+</xsl:template>
+
+<xsl:template name="cb">
+   <span style="{$binder}">
+      <xsl:text>]</xsl:text>
+   </span>
+</xsl:template>
+
 <xsl:template name="oa">
    <span style="{$cast}">
       <xsl:text>&lt;</xsl:text>
 </xsl:template>
 
 <xsl:template name="lambda">
-   <span style="{$binder}">
-      <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
-   </span>
+   <a name="" title="{@mark}">
+      <span style="{$binder}">
+         <xsl:text disable-output-escaping="yes">&amp;lambda;</xsl:text>
+      </span>
+   </a>
 </xsl:template>
 
 <xsl:template name="delta">
-   <span style="{$binder}">
-      <xsl:text disable-output-escaping="yes">&amp;delta;</xsl:text>
-   </span>
+   <a name="" title="{@mark}">
+      <span style="{$binder}">
+         <xsl:text disable-output-escaping="yes">&amp;delta;</xsl:text>
+      </span>
+   </a>
 </xsl:template>
 
 <xsl:template name="chi">
-   <span style="{$binder}">
-      <xsl:text disable-output-escaping="yes">&amp;chi;</xsl:text>
-   </span>
+   <a name="" title="{@mark}">
+      <span style="{$binder}">
+         <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 name="" 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 name="" title="{@mark}">
    </span>
 </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="cm"/>
+   </xsl:if>
+   <xsl:if test="$names">
+      <xsl:value-of select="substring-before($names, ' ')"/>
+      <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="cm"/>
+      </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:call-template name="fs"/>
+</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="cm"/>
+         </xsl:if>
+         <xsl:value-of select="substring-before($names, ' ')"/>
+         <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:param name="path"/>
    <xsl:param name="name"/>
    <div>Informal description: "<xsl:value-of select="@meta"/>"</div><h2/>
 </xsl:template>
 
+<xsl:template name="ld">
+   <xsl:text disable-output-escaping="yes">&amp;lambda;&amp;delta;</xsl:text>
+</xsl:template>
+
 </xsl:stylesheet>
index 1c74233978a524f00443d288b4cb3ccbcaa811d7..4a525a74297bdbac9da304f42d55affbc09dc772 100644 (file)
@@ -30,7 +30,7 @@
              alt="[lambda-delta home]" title="lambda-delta home"
              src="http://helm.cs.unibo.it/lambda-delta/download/crux-32.png"
         /></a>
-        <h1>λδ Digital Library (LDDL)</h1>
+        <h1><xsl:call-template name="ld"/> Digital Library (LDDL)</h1>
         <img style="width: 95%; height: 4px;"
              alt="[Separator]" title="Separator"
              src="http://helm.cs.unibo.it/lambda-delta/download/rainbow.png"
index 083e7290febdac506f61fde4399b1b0eb46cfce4..4edec396fb75950a5193d263366d717acfe7bb9c 100644 (file)
 
 <xsl:template match="Appl">
    <xsl:call-template name="op"/>   
-   <xsl:apply-templates/>
+   <xsl:call-template name="mk_terms"/>
    <xsl:call-template name="cp"/>
    <xsl:call-template name="fs"/>   
 </xsl:template>
 
 <xsl:template match="Abst">
    <xsl:call-template name="lambda"/>
-   <xsl:value-of select="@name"/>
-   <xsl:call-template name="cn"/>   
-   <xsl:apply-templates/>
-   <xsl:call-template name="fs"/>   
+   <xsl:call-template name="mk_binder">
+      <xsl:with-param name="sep-seq">
+         <xsl:call-template name="cn"/>
+      </xsl:with-param>
+   </xsl:call-template>
 </xsl:template>
 
 <xsl:template match="Abbr">
    <xsl:call-template name="delta"/>
-   <xsl:call-template name="binder"/>
-   <xsl:call-template name="eq"/>   
-   <xsl:apply-templates/>
-   <xsl:call-template name="fs"/>   
+   <xsl:call-template name="mk_binder">
+      <xsl:with-param name="sep-seq">
+         <xsl:call-template name="eq"/>
+      </xsl:with-param>
+   </xsl:call-template>
 </xsl:template>
 
 <xsl:template match="Void">
    <xsl:call-template name="chi"/>
-   <xsl:call-template name="binder"/>
-   <xsl:apply-templates/>
+   <xsl:call-template name="ob"/>
+   <xsl:call-template name="mk_names"/>
+   <xsl:call-template name="cb"/>
    <xsl:call-template name="fs"/>
-
 </xsl:template>
 
 </xsl:stylesheet>