]> matita.cs.unibo.it Git - helm.git/commitdiff
- advances in the site generation architecture
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Thu, 7 Apr 2016 13:34:39 +0000 (13:34 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Thu, 7 Apr 2016 13:34:39 +0000 (13:34 +0000)
- more on OSN and on the disclaimer

helm/www/lambdadelta/css/ld_web.css
helm/www/lambdadelta/web/home/documentation.ldw.xml
helm/www/lambdadelta/web/home/implementation.ldw.xml
helm/www/lambdadelta/web/home/index.ldw.xml
helm/www/lambdadelta/web/home/news.ldw.xml
helm/www/lambdadelta/web/home/osn.ldw.xml [new file with mode: 0644]
helm/www/lambdadelta/web/home/sitemap.tbl
helm/www/lambdadelta/web/home/specification.ldw.xml
helm/www/lambdadelta/xslt/ld_web_ebnf.xsl
helm/www/lambdadelta/xslt/ld_web_library.xsl
helm/www/lambdadelta/xslt/ld_web_root.xsl

index a735efdac8b4962fb18103acea43419b2a4c7023..9f2e42d5908d2eb251bcc1d2c14d6a66aa7d74f9 100644 (file)
@@ -131,6 +131,20 @@ img.w3c {
   color:#000080;
 }
 
+/* mark colors **************************************************************/
+
+.red-mark {
+  color:#F00000;
+}
+
+.green-mark {
+  color:#00F000;
+}
+
+.blue-mark {
+  color:#0000F0;
+}
+
 /* background colors ********************************************************/
 
 .white {
index db2189cc66275e9825aeb567c4a836d1bf94d30c..6ce59cb7957409a7feed7f8853cea333a4fe2169 100644 (file)
@@ -3,6 +3,7 @@
 <page xmlns="http://lambdadelta.info/"
       description = "\lambda\delta home page"
       title = "\lambda\delta home page"
+      logo = "crux"
       head = "The Formal Systems of the λδ (\lambda\delta) Family"
 >
    <sitemap name="sitemap"/>
       (revised <notice class="gamma" notice="2015-09"/>).
    </body>
 
-   <subsection name="v3"><version3-icon/>λδ version 3 (proposed)</subsection>
+   <subsection name="v3"><img logo="ld3"/>λδ version 3 (proposed)</subsection>
    <body>
       The main source of information is <notice class="alpha" notice="J3a"/>.
    </body>
    <table name="documentation_3"/>
    
-   <subsection name="v2"><version2-icon/>λδ version 2 (active)</subsection>
+   <subsection name="v2"><img logo="ld2"/>λδ version 2 (active)</subsection>
    <body>
       The main source of information is <notice class="alpha" notice="R2c"/>.
    </body>
    <table name="documentation_2"/>
 
-   <subsection name="v1"><version1-icon/>λδ version 1 (superseded)</subsection>
+   <subsection name="v1"><img logo="ld1"/>λδ version 1 (superseded)</subsection>
    <body>
       The main source of information is <notice class="alpha" notice="J1a"/>.
       A summary is available in <notice class="alpha" notice="P1e"/>.
index 229c5e88b45471517ff70ea0dcaf9f847e68fe34..32139b3a65c8dd4b014fc85f5afb976cb42e73ae 100644 (file)
@@ -3,36 +3,25 @@
 <page xmlns="http://lambdadelta.info/"
       description = "\lambda\delta home page"
       title = "\lambda\delta home page"
+      logo = "crux"
       head = "The Formal Systems of the λδ (\lambda\delta) Family"
 >
    <sitemap name="sitemap"/>
 
    <section5 name="tools">Tools</section5>
 
-   <subsection name="lddl"><crux-icon/>λδ Digital Library (LDDL)</subsection>
+   <subsection name="osn"><img logo="osn"/>Open Symbolic Notation</subsection>
+
    <body>
-      The λδ Digital Library is part of <link to="http://helm.cs.unibo.it/">HELM</link>
-      and contains resources expressed in the systems of the λδ family.      
+      Open Symbolic Notation, abbreviated OSN,
+      is an easy and flexible data-interchange text format
+      intended for the lightweight representation of
+      generic abstract syntax trees in the domain of formal systems.
+      Additional information will appear soon.
    </body>
-   <topitem name="contents">
-      <notice class="alpha" notice="Contents:"/>
-      Landau's "Grundlagen der Analysis"
-      (from Jutting's specification in  <link to="http://www.win.tue.nl/automath/">Automath</link>).
-   </topitem>
-   <topitem name="access">
-      <notice class="alpha" notice="Access:"/>
-      <rlink to="static/lddl/">static pages</rlink> (updated <notice class="gamma" notice="2015-01"/>),
-      <rlink to="download/lddl.tar.bz2">data set</rlink> (updated <notice class="gamma" notice="2014-12"/>),
-      <rlink to="xml/">HELM server URL</rlink> (updated <notice class="gamma" notice="2014-12"/>).
-   </topitem>
-   <topitem name="examples">
-      <notice class="alpha" notice="Examples:"/>
-      <rlink to="static/lddl/Environment/grundlagen_2/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.html">
-         Grundlagen's definition "t234"</rlink>
-      in λδ version 4.
-   </topitem>
 
-   <subsection name="helena"><helena-icon/>Helena</subsection>
+
+   <subsection name="helena"><img logo="helena"/>Helena</subsection>
 
    <body>
       Helena is a processor for the systems of the λδ family,
       </item></list>
    </topitem>
 
-   <subsection name="osn"><osn-icon/>Open Symbolic Notation</subsection>
-   <body>
-      Open Symbolic Notation (OSN) is an easy data-interchange textual format
-      based on <link to="https://en.wikipedia.org/wiki/S-expression">symbolic expressions</link>.
-      OSN is completely language independent but uses widely accepted conventions.
-      These features make OSN ideal for storing and exchanging tree-like data structures
-      in a lightweight manner.
-   </body>
+   <subsection name="lddl"><img logo="lddl"/>λδ Digital Library (LDDL)</subsection>
+
    <body>
-      An OSN text uses the <link to="http://www.utf-8.com/">UTF-8</link> character set
-      and contains the next tokens:
+      The λδ Digital Library is part of <link to="http://helm.cs.unibo.it/">HELM</link>
+      and contains resources expressed in the systems of the λδ family.      
    </body>
-   <list><item>
-      <ebnf>
-         <prod of="symbol"/> <def/> 
-            <prod of="symbol_char"/> <prod of="symbol_char"/> <star/>
-         <stop/> <newline/>
-         <prod of="symbol_char"/> <def/>
-            <chr of="+"/> <or/> <chr of="-"/> <or/> <chr of="."/> <or/>
-            <chr of="0"/> <or/> <etc/> <or/> <chr of="9"/> <or/>
-            <chr of="A"/> <or/> <etc/> <or/> <chr of="Z"/> <or/>
-            <chr of="_"/> <or/> <chr of="a"/> <or/> <etc/> <or/> <chr of="z"/>
-         <stop/>
-      </ebnf> <newline/>
-      this token can represent the identifiers and the numerical constants of most programming languages;
-   </item><item>
-      <ebnf>
-         <prod of="string"/> <def/>
-            <chr of="&quot;"/> <open/>
-            <prod of="string_char"/> <or/>
-            <chr of="\"/> <prod of="escape"/>
-            <close/> <star/> <chr of="&quot;"/>
-         <stop/>
-      </ebnf> <newline/>
-      every valid UTF-8 character whose code point is greater than U+001F is accepted eccept " \ <newline/>
-      the next commonly accepted escape sequences are recognized: \0 \a \b \t \n \v \f \r \e \" \\ <newline/>
-      morover, the escape sequences \x &lt;two hexadecimal digits&gt; and \u &lt;four hexadecimal digits&gt;
-      allow to specify a character by its code point <newline/>
-      finally the escape sequences \( for U+0002 and \) for U+0003 are available
-   </item><item>
-      <ebnf>
-         <prod of="qualifier"/> <def/> <chr of=":"/> <stop/>
-      </ebnf>
-   </item><item>
-      <ebnf>
-         <prod of="left"/> <def/>
-            <chr of="("/> <or/> <chr of="&lt;"/> <or/> <chr of="["/> <or/> <chr of="{"/>
-         <stop/>
-      </ebnf> <newline/>
-      this token starts a compound symbolic expression;
-   </item><item>
-      <ebnf>
-         <prod of="right"/> <def/>
-            <chr of=")"/> <or/> <chr of="&gt;"/> <or/> <chr of="]"/> <or/> <chr of="}"/>
-         <stop/>
-      </ebnf> <newline/>
-      this token ends a compound symbolic expression;
-   </item><item>
-      &lt;ignored&gt; each of the characters U+0009..U+000D U+0020 , ; = <newline/>
-      these characters are ignored and separate the other tokens
-   </item><item>
-      &lt;reserved&gt; any character not starting any other token <newline/>
-      these characters are not allowed,
-      and those in the range U+0021..U+007E are
-      ! # $ % &amp; ' * / ? @ \ ^ ` | ~
-   </item></list>
+   <topitem name="contents">
+      <notice class="alpha" notice="Contents:"/>
+      Landau's "Grundlagen der Analysis"
+      (from Jutting's specification in  <link to="http://www.win.tue.nl/automath/">Automath</link>).
+   </topitem>
+   <topitem name="access">
+      <notice class="alpha" notice="Access:"/>
+      <rlink to="static/lddl/">static pages</rlink> (updated <notice class="gamma" notice="2015-01"/>),
+      <rlink to="download/lddl.tar.bz2">data set</rlink> (updated <notice class="gamma" notice="2014-12"/>),
+      <rlink to="xml/">HELM server URL</rlink> (updated <notice class="gamma" notice="2014-12"/>).
+   </topitem>
+   <topitem name="examples">
+      <notice class="alpha" notice="Examples:"/>
+      <rlink to="static/lddl/Environment/grundlagen_2/l/e/st/eq/landau/n/rt/rp/r/c/8283/t234.ld.html">
+         Grundlagen's definition "t234"</rlink>
+      in λδ version 4.
+   </topitem>
 
    <footer/>
 </page>
index 9913b240147275801286836c46537f52bc4b84e3..13eab16bae83fe09d1a5abb608cb8761c6d4f54f 100644 (file)
@@ -3,6 +3,7 @@
 <page xmlns="http://lambdadelta.info/"
       description = "\lambda\delta home page"
       title = "\lambda\delta home page"
+      logo = "crux"
       head = "The Formal Systems of the λδ (\lambda\delta) Family"
 >
    <sitemap name="sitemap"/>
@@ -85,8 +86,8 @@
 
    <section9 name="disclaimer">Disclaimer</section9>
    <body>
-      The systens of the λδ family <notice class="alpha" text="are not"/> related intentionally to any other system
-      having (variations of) the symbols λ and δ in its name or syntax.
+      The systens of the λδ family <notice class="alpha" text="are not"/> related intentionally to
+      any other system having (variations of) the symbols λ and δ in its name or syntax.
       Examples include (but are not limited to):
    </body>
 
       Eindhoven University of Technology, Eindhoven.
    </topitem>
 
+   <body>
+      Moreover, the systens of the λδ family <notice class="alpha" text="are not"/> related intentionally to
+      the character <link to="http://umineko.wikia.com/wiki/Lambdadelta">Lady Lambdadelta</link>,
+      the Witch of Certainty of the sound novel
+      <link to="https://it.wikipedia.org/wiki/Umineko_no_naku_koro_ni">Umineko no Naku Koro ni</link>.
+   </body>
+
    <footer/>
 </page>
index 2e6e1493621d424923571c2dc3b670ff08982daa..0bf2256247aadd65f0e1a195c3f4ef6371ca36e0 100644 (file)
@@ -3,6 +3,7 @@
 <page xmlns="http://lambdadelta.info/"
       description = "\lambda\delta home page"
       title = "\lambda\delta home page"
+      logo = "crux"
       head = "The Formal Systems of the λδ (\lambda\delta) Family"
 >
    <sitemap name="sitemap"/>
diff --git a/helm/www/lambdadelta/web/home/osn.ldw.xml b/helm/www/lambdadelta/web/home/osn.ldw.xml
new file mode 100644 (file)
index 0000000..ef8580b
--- /dev/null
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<page xmlns="http://lambdadelta.info/"
+      description = "\lambda\delta home page: Open Symbolic Notation"
+      title = "\lambda\delta home page: Open Symbolic Notation"
+      logo = "osn"
+      head = "Open Symbolic Notation"
+>
+   <body>
+      Open Symbolic Notation, abbreviated OSN,
+      is an easy and flexible data-interchange text format
+      intended for the lightweight representation of
+      generic abstract syntax trees in the domain of formal systems.
+      In order to meet theese design goals, OSN pursues the following features.
+   </body>
+   <list><style class="red-mark"><item><style class="alpha">
+      <link to="https://en.wikipedia.org/wiki/S-expression">Symbolic expressions</link>
+      based on widely accepted syntactical conventions
+      provide for a <notice text="lightweight"/> and <notice text="generic"/> grammar,
+      which is both <notice text="easy for machines to process"/>,
+      and <notice text="easy for humans to understand"/>.
+      As a mean to support <notice text="efficient"/> information processing,
+      OSN aims at an economic representation of data
+      contrary to <link to="http://www.w3.org/TR/2008/REC-xml-20081126/#sec-origin-goals">XML design goal 10</link>.
+      Compared to other data-interchange formats based on symbolic expressions,
+      like <link to="http://people.csail.mit.edu/rivest/Sexp.txt">canonical symbolic expressions</link>,
+      representing arbitrary data in binary format is a secondary concern in the designn of OSN,
+      as well as the support for canonicalization.
+      Apparently, theese features fall outside the scope of OSN,
+      which targets the data structures of <notice text="formal systems"/>. 
+   </style></item></style>
+   <newline/>
+   <style class="blue-mark"><item><style class="alpha">
+      Optionally <link to="https://en.wikipedia.org/wiki/Namespace">qualified</link> symbolic expressions 
+
+   </style></item></style>
+   <newline/>
+   <style class="green-mark"><item><style class="alpha">
+      The <link to="https://en.wikipedia.org/wiki/ASCII">US-ASCII</link> character set,
+      extended to <link to="http://www.utf-8.com/">UTF-8</link> in
+      free-form text strings for the convenience of human readers,
+      makes OSN documents <notice text="easy to visualize and transport"/> over communication media.
+      OSN design aims at supporting <notice text="application-independent"/> standard encodings.
+   </style></item></style></list>
+   <body>
+      
+   </body>
+<!--
+   flexibility: S-expressions should make it relatively simple to
+     modify and extend data structures.
+      OSN is completely language independent but uses .
+-->
+
+
+   <section6 name="syntax">Syntax</section6>
+
+   <body>
+      An OSN text uses the <link to="http://www.utf-8.com/">UTF-8</link> character set
+      and contains the next seven tokens that we define in a very common EBNF variant.
+      Characters not starting a token are not allowed.
+      The ones in the range U+0021 ... U+007E are ! # $ % &amp; * / ? @ \ ^ | ~
+      and are available for extensions of OSN.
+   </body>
+   <list><item>
+      <ebnf>
+         <prod of="symbol"/> <def/> 
+            <plus/> <prod of="symbol-char"/>
+         <stop/> <newline/>
+         <prod of="symbol-char"/> <def/>
+            <str2 of="+"/> <or/> <str2 of="-"/> <or/> <str2 of="."/> <or/>
+            <str2 of="0"/> <etc/> <str2 of="9"/> <or/>
+            <str2 of="A"/> <etc/> <str2 of="Z"/> <or/>
+            <str2 of="_"/> <or/> <str2 of="`"/> <or/>
+            <str2 of="a"/> <etc/> <str2 of="z"/>
+         <stop/>
+      </ebnf><newline/>
+      this token can represent the identifiers and the numerical constants of most programming languages;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="string"/> <def/>
+            <str2 of="&quot;"/> <and/>
+            <star/> <open/>
+               <prod of="string-char"/> <or/>
+               <str1 of="'"/> <or/>
+               <str2 of="\"/> <prod of="escape"/>
+            <close/> <and/>
+            <str2 of="&quot;"/>
+         <stop/> <newline/>
+         <prod of="string-char"/> <def/>
+            <open/>
+               <xchr of="0"/> <etc/> <xchr of="10FFFF"/>
+            <close/> <but/> <open/>
+               <xchr of="0"/> <etc/> <xchr of="1F"/> <or/>
+               <str1 of="'"/> <or/> <str2 of="\"/> <or/>
+               <str2 of="&quot;"/> <or/> <xchr of="7F"/> 
+            <close/>
+         <stop/> <newline/>
+         <prod of="escape"/> <def/>
+            <plus/> <prod of="space"/> <or/>
+            <str2 of="&quot;"/> <or/> <str1 of="'"/> <or/>
+            <str2 of="("/> <or/> <str2 of=")"/> <or/>
+            <str2 of="0"/> <or/> <str2 of="\"/> <or/>
+            <str2 of="a"/> <or/> <str2 of="b"/> <or/>
+            <str2 of="e"/> <or/>
+            <str2 of="f"/> <or/> <str2 of="n"/> <or/>
+            <str2 of="r"/> <or/> <str2 of="t"/> <or/>
+            <open/>
+               <str2 of="u"/> <and/> <spec of="4"/> <prod of="hex"/>
+            <close/> <or/>
+            <str2 of="v"/> <or/>
+            <open/>
+               <str2 of="x"/> <and/> <spec of="2"/> <prod of="hex"/>
+            <close/>
+         <stop/> <newline/>
+         <prod of="space"/> <def/>
+            <xchr of="9"/> <etc/> <xchr of="D"/> <or/>
+            <xchr of="20"/>
+         <stop/> <newline/>            
+         <prod of="hex"/> <def/>
+            <str2 of="0"/> <etc/> <str2 of="9"/> <or/>
+            <str2 of="A"/> <etc/> <str2 of="F"/> <or/>
+            <str2 of="a"/> <etc/> <str2 of="f"/>
+         <stop/>
+      </ebnf><newline/>
+      this token contains free-form text with commonly accepted escape sequences;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="string-alt"/> <def/>
+            <str1 of="'"/> <and/>
+            <star/> <open/>
+               <prod of="string-char"/> <or/>
+               <str2 of="&quot;"/> <or/>
+               <str2 of="\"/> <prod of="escape"/>
+            <close/> <and/>
+            <str1 of="'"/>
+         <stop/>
+      </ebnf><newline/>
+      this token is a widely used alternative of the former;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="sep"/> <def/> <str2 of=":"/> <stop/>
+      </ebnf><newline/>
+      this token separates the qualifiers of a symbolic expression;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="open"/> <def/>
+            <str2 of="("/> <or/> <str2 of="&lt;"/> <or/> <str2 of="["/> <or/> <str2 of="{"/>
+         <stop/>
+      </ebnf><newline/>
+      this token starts a compound symbolic expression;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="close"/> <def/>
+            <str2 of=")"/> <or/> <str2 of="&gt;"/> <or/> <str2 of="]"/> <or/> <str2 of="}"/>
+         <stop/>
+      </ebnf><newline/>
+      this token ends a compound symbolic expression;
+   </item><newline/><item>
+      <ebnf>
+         <prod of="gap"/> <def/>
+            <prod of="space"/> <or/>
+            <str2 of=","/> <or/> <str2 of=";"/> <or/> <str2 of="="/>
+         <stop/>
+      </ebnf><newline/>
+      this token is ignored and separates the other tokens.
+   </item></list>
+
+   <body>
+   </body>
+
+<!--
+      morover, the escape sequences \x &lt;two hexadecimal digits&gt; and \u &lt;four hexadecimal digits&gt;
+      allow to specify a character by its code point <newline/>
+      finally the escape sequences \( for U+0002 and \) for U+0003 are available
+-->
+
+   <footer/>
+</page>
index af3b9f7736ff97d5d5a1f28f746b7aabdc5ee557..8862f01d45c184def03c3e9d8bb9e36a2f49da1d 100644 (file)
@@ -31,10 +31,10 @@ table [
    }
    class "green" {
       [ @@"implementation" * ] 
+      [ @@("implementation#helena" "helena") * ]
       [ @@("implementation#lddl" "library")
         "(" ^ @@("static/lddl/" "static LDDL directory") ^ ")"
       * ]
-      [ @@("implementation#helena" "helena") * ]
    }
 ]
 
index 969e3fd004acbf792c91ab4910b29f5683f01a07..e3f4baf3bf5a29039b5ba52aee0bbbd51025f8f6 100644 (file)
@@ -3,6 +3,7 @@
 <page xmlns="http://lambdadelta.info/"
       description = "\lambda\delta home page"
       title = "\lambda\delta home page"
+      logo = "crux"
       head = "The Formal Systems of the λδ (\lambda\delta) Family"
 >
    <sitemap name="sitemap"/>
@@ -46,7 +47,7 @@
 
 <!-- VERSION 3 =========================================================== -->
 
-   <subsection name="v3"><version3-icon/>λδ version 3 (proposed)</subsection>
+   <subsection name="v3"><img logo="ld3"/>λδ version 3 (proposed)</subsection>
    <body>
       The formal specification of λδ version 3
       is forthcoming.
@@ -54,7 +55,7 @@
 
 <!-- VERSION 2 =========================================================== -->
 
-   <subsection name="v2"><version2-icon/>λδ version 2 (active)</subsection>
+   <subsection name="v2"><img logo="ld2"/>λδ version 2 (active)</subsection>
    <body>
       The formal specification of λδ version 2
       is available in the following formats:
@@ -87,7 +88,7 @@
 
 <!-- VERSION 1 =========================================================== -->
 
-   <subsection name="v1"><version1-icon/>λδ version 1 (superseded)</subsection>
+   <subsection name="v1"><img logo="ld1"/>λδ version 1 (superseded)</subsection>
    <body>
       The formal specification of λδ version 1
       is available in the following formats:
index 5599defa6fcd2e12d21220d19a5b53b45657f700..5378a111ebf19bb190525160d26155ca528d65f3 100644 (file)
@@ -13,9 +13,7 @@
 </xsl:template>
 
 <xsl:template match="ld:prod">
-   <xsl:text>&lt;</xsl:text>
    <xsl:value-of select="@of"/>
-   <xsl:text>&gt;</xsl:text>
    <xsl:call-template name="sp"/>
 </xsl:template>
 
    <xsl:call-template name="sp"/>
 </xsl:template>
 
-<xsl:template match="ld:str">
+<xsl:template match="ld:str1">
    <xsl:text>"</xsl:text>
    <xsl:value-of select="@of"/>
    <xsl:text>"</xsl:text>
    <xsl:call-template name="sp"/>
 </xsl:template>
 
-<xsl:template match="ld:chr">
+<xsl:template match="ld:str2">
    <xsl:text>'</xsl:text>
    <xsl:value-of select="@of"/>
    <xsl:text>'</xsl:text>
    <xsl:call-template name="sp"/>
 </xsl:template>
 
+<xsl:template match="ld:xchr">
+   <xsl:text>#</xsl:text>
+   <xsl:value-of select="@of"/>
+   <xsl:call-template name="sp"/>
+</xsl:template>
+
+<xsl:template match="ld:and">
+   <xsl:text>,</xsl:text>
+   <xsl:call-template name="sp"/>
+</xsl:template>
+
 <xsl:template match="ld:or">
    <xsl:text>|</xsl:text>
    <xsl:call-template name="sp"/>
 </xsl:template>
 
 <xsl:template match="ld:etc">
+   <xsl:text>|</xsl:text>
+   <xsl:call-template name="sp"/>   
    <xsl:text>...</xsl:text>
    <xsl:call-template name="sp"/>
+   <xsl:text>|</xsl:text>
+   <xsl:call-template name="sp"/>
+</xsl:template>
+
+<xsl:template match="ld:but">
+   <xsl:text>-</xsl:text>
+   <xsl:call-template name="sp"/>
 </xsl:template>
 
 <xsl:template match="ld:open">
    <xsl:call-template name="sp"/>
 </xsl:template>
 
+<xsl:template match="ld:opt">
+   <xsl:text>*</xsl:text>
+   <xsl:call-template name="sp"/>
+   <xsl:text>1</xsl:text>
+   <xsl:call-template name="sp"/>
+</xsl:template>
+
 <xsl:template match="ld:plus">
-   <xsl:text>+</xsl:text>
+   <xsl:text>1</xsl:text>
+   <xsl:call-template name="sp"/>
+   <xsl:text>*</xsl:text>
+   <xsl:call-template name="sp"/>
+</xsl:template>
+
+<xsl:template match="ld:spec">
+   <xsl:value-of select="@of"/>
+   <xsl:call-template name="sp"/>
+   <xsl:text>*</xsl:text>
+   <xsl:call-template name="sp"/>
+   <xsl:value-of select="@of"/>
    <xsl:call-template name="sp"/>
 </xsl:template>
 
index fb76831dc8510dd4792523c85b7200c11a90442a..ad10ba2eb5edea514bedc4adfeec3b489e31f4d4 100644 (file)
@@ -5,18 +5,6 @@
                 xmlns="http://www.w3.org/1999/xhtml"
 >
 
-<xsl:template name="home">
-   <div class="spacer">
-      <a href="{$baseurl}">
-         <img class="icon32"
-             alt="[\lambda\delta home]"
-             title="\lambda\delta home"
-             src="{$baseurl}images/crux_32.png"
-         />
-      </a>
-   </div>
-</xsl:template>
-
 <xsl:template name="rule">
    <div class="spacer">
       <img class="rule"
@@ -36,7 +24,9 @@
    />
 </xsl:template>
 
-<xsl:template name="xhtml">
+<!-- label support -->
+
+<xsl:template name="xhtml-label">
    <a href="http://validator.w3.org/check?uri=referer">
       <img class="w3c"
            alt="[Valid XHTML 1.1]"
@@ -46,7 +36,7 @@
    </a>
 </xsl:template>
 
-<xsl:template name="css">
+<xsl:template name="css-label">
    <a href="http://jigsaw.w3.org/css-validator/check/referer">
       <img class="w3c"
            alt="[Valid CSS level 2]"
@@ -56,7 +46,7 @@
    </a>
 </xsl:template>
 
-<xsl:template name="xslt">
+<xsl:template name="xslt-label">
    <a href="http://www.w3.org/XML/">
       <img class="w3c"
            alt="[Generated from XML via XSL]"
@@ -66,7 +56,7 @@
    </a>
 </xsl:template>
 
-<xsl:template name="png">
+<xsl:template name="png-label">
    <a href="http://www.w3.org/Graphics/PNG/">
       <img class="w3c"
            alt="[PNG used here]"
@@ -76,7 +66,7 @@
    </a>
 </xsl:template>
 
-<xsl:template name="browser">
+<xsl:template name="browser-label">
    <a href="http://www.anybrowser.org/campaign/">
       <img class="w3c"
            alt="[Viewable with any browser]"
@@ -86,7 +76,7 @@
    </a>
 </xsl:template>
 
-<xsl:template name="helena">
+<xsl:template name="helena-label">
    <a href="{$baseurl}implementation.html#helena">
       <img class="w3c"
            alt="[Powered by Helena \lambda\delta processor]"
    </a>
 </xsl:template>
 
+<!-- logo support -->
+
+<xsl:template name="crux-logo">
+   <a href="{$baseurl}"><img class="icon32"
+      alt="[\lambda\delta home]"
+      title="\lambda\delta home"
+      src="{$baseurl}images/crux_32.png"
+   /></a>
+</xsl:template>
+
+<xsl:template name="ld3-logo">
+   <xsl:call-template name="butterfly">
+      <xsl:with-param name="name" select="8"/>
+   </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="ld2-logo">
+   <xsl:call-template name="butterfly">
+      <xsl:with-param name="name" select="4"/>
+   </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="ld1-logo">
+   <xsl:call-template name="butterfly">
+      <xsl:with-param name="name" select="6"/>
+   </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="osn-logo">
+   <a href="{$baseurl}osn.html"><img class="w3c"
+      alt="[Open Symbolic Notation logo]"
+      title="OSN: Open Symbolic Notation"
+      src="{$baseurl}images/osn_label.png"
+   /></a>
+</xsl:template>
+
+<xsl:template name="helena-logo">
+   <img class="icon32"
+       alt="[Helena logo]"
+       title="Helena"
+       src="{$baseurl}images/helena_32.png"
+   />
+</xsl:template>
+
+<xsl:template name="lddl-logo">
+   <img class="icon32"
+       alt="[\lambda\delta digital library logo]"
+       title="LDDL: \lambda\delta digital library"
+       src="{$baseurl}images/crux_32.png"
+   />
+</xsl:template>
+
+<!-- img main template -->
+
+<xsl:template name="img">
+  <xsl:choose>
+    <xsl:when test="@logo='crux'">
+      <xsl:call-template name="crux-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='ld3'">
+      <xsl:call-template name="ld3-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='ld2'">
+      <xsl:call-template name="ld2-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='ld1'">
+      <xsl:call-template name="ld1-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='osn'">
+      <xsl:call-template name="osn-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='helena'">
+      <xsl:call-template name="helena-logo"/>
+    </xsl:when>
+    <xsl:when test="@logo='lddl'">
+      <xsl:call-template name="lddl-logo"/>
+    </xsl:when>
+    <xsl:when test="@label='helena'">
+      <xsl:call-template name="helena-label"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
 <xsl:template name="sp">
    <xsl:text> </xsl:text>
 </xsl:template>
index e3d04bbafc88a6381ac5d129a3e6ac104409e93b..4be8878ff51738a7ea57b3a32d86f9e2e7bda4cd 100644 (file)
    <li><xsl:apply-templates/></li>
 </xsl:template>
 
+<xsl:template match="ld:style">
+   <span class="{@class}">
+      <xsl:choose>
+         <xsl:when test="@of"><xsl:value-of select="@of"/></xsl:when>
+         <xsl:otherwise><xsl:apply-templates/></xsl:otherwise>
+      </xsl:choose>
+   </span>
+</xsl:template>
+
 <xsl:template match="ld:notice">
    <span class="emph {@class}">
       <xsl:choose>
    <sup><xsl:apply-templates/></sup>
 </xsl:template>
 
-<xsl:template match="ld:version3-icon">
-   <xsl:call-template name="butterfly">
-      <xsl:with-param name="name" select="8"/>
-   </xsl:call-template>
-   <xsl:call-template name="sp"/>
-</xsl:template>
-
-<xsl:template match="ld:version2-icon">
-   <xsl:call-template name="butterfly">
-      <xsl:with-param name="name" select="4"/>
-   </xsl:call-template>
-   <xsl:call-template name="sp"/>
-</xsl:template>
-
-<xsl:template match="ld:version1-icon">
-   <xsl:call-template name="butterfly">
-      <xsl:with-param name="name" select="6"/>
-   </xsl:call-template>
-   <xsl:call-template name="sp"/>
-</xsl:template>
-
-<xsl:template match="ld:crux-icon">
-   <img class="icon32"
-       alt="[Crux logo]"
-       title="the Crux"
-       src="{$baseurl}images/crux_32.png"
-   />
-   <xsl:call-template name="sp"/>
-</xsl:template>
-
-<xsl:template match="ld:helena-icon">
-   <img class="icon32"
-       alt="[Helena logo]"
-       title="Helena"
-       src="{$baseurl}images/helena_32.png"
-   />
-   <xsl:call-template name="sp"/>
-</xsl:template>
-
-<xsl:template match="ld:osn-icon">
-   <img class="w3c"
-       alt="[Open Symbolic Notation logo]"
-       title="OSN: Open Symbolic Notation"
-       src="{$baseurl}images/osn_label.png"
-   />
-   <xsl:call-template name="sp"/>
+<xsl:template match="ld:img">
+   <xsl:call-template name="img"/>
+   <xsl:choose>
+      <xsl:when test="@logo">
+         <xsl:call-template name="sp"/>
+      </xsl:when>
+   </xsl:choose>
 </xsl:template>
 
 <xsl:template match="ld:footer">
    <xsl:call-template name="rule"/>
    <div class="spacer"><br/></div>   
    <div class="spacer">
-      <xsl:call-template name="xhtml"/>
-      <xsl:call-template name="css"/>
-      <xsl:call-template name="xslt"/>
+      <xsl:call-template name="xhtml-label"/>
+      <xsl:call-template name="css-label"/>
+      <xsl:call-template name="xslt-label"/>
       <xsl:apply-templates/>
-      <xsl:call-template name="png"/>
-      <xsl:call-template name="browser"/>
+      <xsl:call-template name="png-label"/>
+      <xsl:call-template name="browser-label"/>
    </div>
    <div class="spacer"><br/></div>   
    <div class="spacer">
    </div>
 </xsl:template>
 
-<xsl:template match="ld:helena-label">
-   <xsl:call-template name="helena"/>
-</xsl:template>
-
 <xsl:template match="ld:page">
    <html xsl:exclude-result-prefixes="ld" dir="ltr" lang="en-us"><head> 
       <meta http-equiv="Content-Language" content="en-us"/>
             href="{$baseurl}images/crux_16.ico"
       />
    </head><body lang="en-US">
-      <xsl:call-template name="home"/>
+      <div class="spacer"><xsl:call-template name="img"/></div>
       <div class="head1"><xsl:value-of select="@head"/></div>
       <xsl:call-template name="rule"/>
       <xsl:apply-templates/>