]> matita.cs.unibo.it Git - helm.git/blob - daemons/on-line/xslt/ls2theory.xsl
91942331bb1c2827aa58c16dea6ed15a0b778977
[helm.git] / daemons / on-line / xslt / ls2theory.xsl
1 <?xml version="1.0"?>
2
3 <xsl:stylesheet version="1.0"
4   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5   xmlns:helm="http://www.cs.unibo.it/helm"
6   xmlns="http://www.w3.org/1999/xhtml"
7 >
8
9   <xsl:output method="html" encoding="UTF-8"/>
10
11   <xsl:param name="CICURI" select="''" />
12   <xsl:param name="interfaceURL" select="''" />
13
14   <xsl:template match="ls">
15     <html>
16       <head>
17         <style>
18           li {
19             font-family: sans-serif;
20           }
21           li.theory {
22             list-style-image:
23               url(<xsl:value-of select="$interfaceURL"/>/icons/theory.png)
24           }
25           li.folder {
26             list-style-image:
27               url(<xsl:value-of select="$interfaceURL"/>/icons/folder.png)
28           }
29           li.object {
30             list-style-image:
31               url(<xsl:value-of select="$interfaceURL"/>/icons/object.png)
32           }
33           a.theory { text-decoration: none; }
34           a.folder { text-decoration: none; }
35           a.object { text-decoration: none; }
36         </style>
37       </head>
38       <body>
39         <ul>
40           <xsl:apply-templates select="object[@name='index.theory']"/>
41           <!-- sorting: folders interleaved with theories, then objects-->
42           <xsl:apply-templates
43             select="section|object[substring-after(@name,'.')='theory' and
44                     not(@name='index.theory')]">
45             <xsl:sort select="translate(concat(@name,string(.)),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
46           </xsl:apply-templates>
47           <xsl:apply-templates
48             select="object[not(substring-after(@name,'.')='theory')]" >
49             <xsl:sort select="translate(concat(@name,string(.)),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
50           </xsl:apply-templates>
51         </ul>
52       </body>
53     </html>
54   </xsl:template>
55
56   <xsl:template match="section">
57     <li class="folder">
58       <a class="folder" href="{concat($CICURI, text(), '/')}"
59         helm:helm_link="href">
60         <xsl:value-of select="text()" />
61       </a>
62       <xsl:text>/</xsl:text>
63     </li>
64   </xsl:template>
65
66   <xsl:template match="object">
67     <xsl:choose>
68       <xsl:when test="substring-after(@name, '.')='theory'">
69         <li class="theory">
70           <a class="theory" href="{concat($CICURI, @name)}"
71             helm:helm_link="href">
72             <xsl:value-of select="@name" />
73           </a>
74         </li>
75       </xsl:when>
76       <xsl:otherwise>
77         <li class="object">
78           <a class="object"
79             href="{concat('cic:', substring-after($CICURI, ':'), @name)}"
80             helm:helm_link="href">
81             <xsl:value-of select="@name" />
82           </a>
83         </li>
84       </xsl:otherwise>
85     </xsl:choose>
86   </xsl:template>
87
88 </xsl:stylesheet>