merge with 0.30.213
[util-vserver.git] / 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="database">
20     <head>
21       <title>The <xsl:value-of select="$confdir"/> directory</title>
22       <link rel="alternate stylesheet" title="gras"     type="text/css" href="css/configuration-lsd.css" />
23       <link rel="alternate stylesheet" title="gras1"    type="text/css" href="css/configuration-lsd1.css" />
24       <link rel="alternate stylesheet" title="flower"   type="text/css" href="css/configuration-flower.css" />
25       <link rel="alternate stylesheet" title="boring"   type="text/css" href="configuration.css" />
26       <link rel="stylesheet"           title="weedpage" type="text/css" href="css/WeedPageStyle.css" />
27     </head>
28     <body>
29       <h1>The content of the <xsl:value-of select="$confdir"/> directory</h1>
30
31       <xsl:call-template name="collection">
32         <xsl:with-param name="thisdir"><xsl:value-of select="$confdir"/></xsl:with-param>
33       </xsl:call-template>
34     </body>
35   </xsl:template>
36
37   <xsl:template name="collection">
38     <xsl:param name="thisdir"/>
39     <xsl:if test="count(scalar) + count(link) + count(program) + count(data) + count(hash) + count(list) + count(boolean) + count(collection)>0">
40       <ul>
41         <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
42         <xsl:call-template name="dir-iterate">
43           <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
44         </xsl:call-template>
45       </ul>
46     </xsl:if>
47   </xsl:template>
48
49   <xsl:template name="dir-iterate">
50     <xsl:param name="thisdir"/>
51     <xsl:apply-templates select="scalar|link|program|data|hash|list|boolean">
52       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
53       <xsl:sort select="@name"/>
54     </xsl:apply-templates>
55
56     <xsl:apply-templates select="collection">
57       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
58       <xsl:sort select="@name"/>
59     </xsl:apply-templates>
60   </xsl:template>
61
62   <xsl:template match="program">
63     <xsl:param name="thisdir"/>
64     <li>
65       <xsl:call-template name="printname">
66         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
67         <xsl:with-param name="style">script</xsl:with-param>
68       </xsl:call-template>
69       <xsl:call-template name="printcontent"/>
70     </li>
71   </xsl:template>
72
73   <xsl:template match="hash">
74     <xsl:param name="thisdir"/>
75     <li>
76       <xsl:call-template name="printname">
77         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
78         <xsl:with-param name="style">hash</xsl:with-param>
79       </xsl:call-template>
80       <xsl:call-template name="printcontent"/>
81     </li>
82   </xsl:template>
83   
84   <xsl:template match="scalar">
85     <xsl:param name="thisdir"/>
86     <li>
87       <xsl:call-template name="printname">
88         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
89         <xsl:with-param name="style">file</xsl:with-param>
90       </xsl:call-template>
91       <xsl:call-template name="printcontent"/>
92     </li>
93   </xsl:template>
94
95   <xsl:template match="data">
96     <xsl:param name="thisdir"/>
97     <li>
98       <xsl:call-template name="printname">
99         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
100         <xsl:with-param name="style">data</xsl:with-param>
101       </xsl:call-template>
102       <xsl:call-template name="printcontent"/>
103     </li>
104   </xsl:template>
105
106   <xsl:template match="list">
107     <xsl:param name="thisdir"/>
108     <li>
109       <xsl:call-template name="printname">
110         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
111         <xsl:with-param name="style">list</xsl:with-param>
112       </xsl:call-template>
113       <xsl:call-template name="printcontent"/>
114     </li>
115   </xsl:template>
116   
117   <xsl:template match="link">
118     <xsl:param name="thisdir"/>
119     <li>
120       <xsl:call-template name="printname">
121         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
122         <xsl:with-param name="style">symlink</xsl:with-param>
123       </xsl:call-template>
124       <xsl:call-template name="printcontent"/>
125     </li>
126   </xsl:template>
127
128   <xsl:template match="boolean">
129     <xsl:param name="thisdir"/>
130     <li>
131       <xsl:call-template name="printname">
132         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
133         <xsl:with-param name="style">boolean</xsl:with-param>
134       </xsl:call-template>
135       <xsl:call-template name="printcontent"/>
136     </li>
137   </xsl:template>
138   
139   <xsl:template match="collection">
140     <xsl:param name="thisdir"/>
141     <li>
142       <xsl:call-template name="printfullname">
143         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
144         <xsl:with-param name="style">directory</xsl:with-param>
145       </xsl:call-template>
146       <xsl:call-template name="printcontent"/>
147
148       <xsl:call-template name="collection">
149         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/>/<xsl:call-template name="printdirname"/></xsl:with-param>
150       </xsl:call-template>
151     </li>
152   </xsl:template>
153
154   <xsl:template match="collection" mode="printrpath">
155     <xsl:text>/</xsl:text>
156       <span class="{@type}">
157       <xsl:value-of select="@name"/>
158     </span>
159   </xsl:template>
160
161   <xsl:template match="elements">
162     <div class="elements">
163       <dl>
164         <xsl:apply-templates select="element">
165           <xsl:sort select="@name"/>
166         </xsl:apply-templates>
167       </dl>
168     </div>
169   </xsl:template>
170
171   <xsl:template match="elements/element">
172     <dt class="elements">
173       <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
174       <xsl:value-of select="@name"/>
175     </dt>
176     <dd class="elements"><xsl:apply-templates select="description"/></dd>
177   </xsl:template>
178   
179   <xsl:template name="printfullname">
180     <xsl:param name="thisdir"/>
181     <xsl:param name="style"/>
182     <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
183     <span class="{$style}">
184       <xsl:value-of select="$confdir"/>
185       <xsl:apply-templates select="ancestor-or-self::collection" mode="printrpath"/>
186     </span>
187   </xsl:template>
188
189   <xsl:template name="printname">
190     <xsl:param name="thisdir"/>
191     <xsl:param name="style"/>
192     <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>
193     <span class="{$style}">
194       <xsl:attribute name="title">
195         <xsl:value-of select="$thisdir"/>/<xsl:call-template name="printdirname"/>
196       </xsl:attribute>
197       <xsl:value-of select="@name"/>
198     </span>
199   </xsl:template>
200
201   <xsl:template name="printcontent">
202     <br/>
203     <xsl:apply-templates select="description"/>
204     <xsl:apply-templates select="elements"/>
205   </xsl:template>
206
207   <xsl:template name="printdirname">
208     <xsl:if test="@type='symbolic'">$</xsl:if>
209     <xsl:value-of select="@name"/>
210   </xsl:template>
211
212   <xsl:template match="description">
213     <div class="description">
214       <xsl:apply-templates/>
215     </div>
216   </xsl:template>
217
218   <xsl:template match="ulink">
219     <a href="{@url}"><xsl:apply-templates/></a>
220   </xsl:template>
221
222   <xsl:template match="br">
223     <br />
224   </xsl:template>
225
226   <xsl:template match="p">
227     <div><xsl:apply-templates/></div>
228   </xsl:template>
229
230   <xsl:template match="tool">
231     <code class="tool"><xsl:apply-templates/></code>
232   </xsl:template>
233
234   <xsl:template match="command">
235     <code class="command"><xsl:apply-templates/></code>
236   </xsl:template>
237
238   <xsl:template match="directory">
239     <span class="directoryname"><xsl:apply-templates/></span>
240   </xsl:template>
241
242   <xsl:template match="filename">
243     <a class="filename">
244       <xsl:attribute name="href">file://<xsl:value-of select="text()"/></xsl:attribute>
245       <xsl:apply-templates/>
246     </a>
247   </xsl:template>
248   
249   <xsl:template match="optionref">
250     <a class="optionref">
251       <xsl:attribute name="href">
252         <xsl:choose>
253           <xsl:when test="@ref">#<xsl:value-of select="@ref"/></xsl:when>
254           <xsl:otherwise>#<xsl:value-of select="text()"/></xsl:otherwise>
255         </xsl:choose>
256       </xsl:attribute><xsl:apply-templates/>
257     </a>
258   </xsl:template>
259 </xsl:stylesheet>