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