10991d7631ef48f1e566cd1075ba6b7ad34a5d47
[util-vserver.git] / util-vserver / doc / configuration-xhtml.xsl
1 <?xml version="1.0" encoding="utf-8"?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                 xmlns="http://www.w3.org/1999/xhtml"
4                 version="1.0">
5
6   <xsl:output method="xml"
7               indent="yes"
8               doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
9               doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
10   
11   <xsl:template match="/">
12     <html>
13       <xsl:apply-templates/>
14     </html>
15   </xsl:template>
16
17   <xsl:template match="topleveldir[@type='confdir']">
18     <head>
19       <title>The <xsl:value-of select="$confdir"/> directory</title>
20       <link rel="stylesheet" title="LSD"    type="text/css" href="configuration-lsd.css"></link>
21       <link rel="stylesheet" title="boring" type="text/css" href="configuration.css"></link>
22     </head>
23     <body>
24       <h1>The content of the <xsl:value-of select="$confdir"/> directory</h1>
25
26       <xsl:call-template name="dir">
27         <xsl:with-param name="thisdir"><xsl:value-of select="$confdir"/></xsl:with-param>
28       </xsl:call-template>
29     </body>
30   </xsl:template>
31
32   <xsl:template name="dir">
33     <xsl:param name="thisdir"/>
34     <xsl:message>
35       <xsl:value-of select="$thisdir"/>
36     </xsl:message>
37     <xsl:choose>
38       <xsl:when test="count(file) + count(symlink) + count(script) + count(dir) > 0">
39         <ul>
40           <xsl:call-template name="dir-iterate">
41             <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
42           </xsl:call-template>
43         </ul>
44       </xsl:when>
45       <xsl:otherwise>
46         <xsl:call-template name="dir-iterate">
47           <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
48         </xsl:call-template>
49       </xsl:otherwise>
50     </xsl:choose>
51   </xsl:template>
52
53   <xsl:template name="dir-iterate">
54     <xsl:param name="thisdir"/>
55     <xsl:apply-templates select="file|symlink|script">
56       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
57       <xsl:sort select="@name"/>
58     </xsl:apply-templates>
59     
60     <xsl:apply-templates select="dir">
61       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
62       <xsl:sort select="@name"/>
63     </xsl:apply-templates>
64   </xsl:template>
65
66   <xsl:template match="script">
67     <xsl:param name="thisdir"/>
68     <li>
69       <xsl:call-template name="printname">
70         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
71         <xsl:with-param name="style">script</xsl:with-param>
72       </xsl:call-template>
73       <xsl:call-template name="printcontent"/>
74     </li>
75   </xsl:template>
76
77   <xsl:template match="file">
78     <xsl:param name="thisdir"/>
79     <li>
80       <xsl:call-template name="printname">
81         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
82         <xsl:with-param name="style">file</xsl:with-param>
83       </xsl:call-template>
84       <xsl:call-template name="printcontent"/>
85     </li>
86   </xsl:template>
87
88   <xsl:template match="symlink">
89     <xsl:param name="thisdir"/>
90     <li>
91       <xsl:call-template name="printname">
92         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
93         <xsl:with-param name="style">symlink</xsl:with-param>
94       </xsl:call-template>
95       <xsl:call-template name="printcontent"/>
96     </li>
97   </xsl:template>
98
99   <xsl:template match="dir">
100     <xsl:param name="thisdir"/>
101     <li>
102       <xsl:call-template name="printfullname">
103         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
104         <xsl:with-param name="style">directory</xsl:with-param>
105       </xsl:call-template>
106       <xsl:call-template name="printcontent"/>
107
108       <xsl:call-template name="dir">
109         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/>/<xsl:value-of select="@name"/></xsl:with-param>
110       </xsl:call-template>
111     </li>
112   </xsl:template>
113
114   <xsl:template match="dir" mode="printrpath">
115     <xsl:text>/</xsl:text>
116     <span class="{@type}">
117       <xsl:value-of select="@name"/>
118     </span>
119   </xsl:template>
120   
121   <xsl:template name="printfullname">
122     <xsl:param name="thisdir"/>
123     <xsl:param name="style"/>
124     <span class="{$style}">
125       <xsl:value-of select="$confdir"/>
126       <xsl:apply-templates select="ancestor-or-self::dir" mode="printrpath"/>
127     </span>
128   </xsl:template>
129
130   <xsl:template name="printname">
131     <xsl:param name="thisdir"/>
132     <xsl:param name="style"/>
133     <span class="{$style}" title="{$thisdir}/{@name}">
134       <xsl:value-of select="@name"/>
135     </span>
136   </xsl:template>
137
138   <xsl:template name="printcontent">
139     <br/>
140     <span class="description">
141       <xsl:apply-templates select="description"/>
142     </span>
143   </xsl:template>
144
145 </xsl:stylesheet>