Typofix.
[htmlpurifier.git] / configdoc / styles / plain.xsl
blob9b9794e0bdad475ec9a6866dc4898bde7e46e913
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet
3 version = "1.0"
4 xmlns = "http://www.w3.org/1999/xhtml"
5 xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
7 <xsl:output
8 method = "xml"
9 encoding = "UTF-8"
10 doctype-public = "-//W3C//DTD XHTML 1.0 Transitional//EN"
11 doctype-system = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
12 indent = "no"
13 media-type = "text/html"
15 <xsl:param name="css" select="'styles/plain.css'"/>
16 <xsl:param name="title" select="'Configuration Documentation'"/>
18 <xsl:variable name="typeLookup" select="document('../types.xml')/types" />
19 <xsl:variable name="usageLookup" select="document('../usage.xml')/usage" />
21 <!-- Twiddle this variable to get the columns as even as possible -->
22 <xsl:variable name="maxNumberAdjust" select="2" />
24 <xsl:template match="/">
25 <html lang="en" xml:lang="en">
26 <head>
27 <title><xsl:value-of select="$title" /> - <xsl:value-of select="/configdoc/title" /></title>
28 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
29 <link rel="stylesheet" type="text/css" href="{$css}" />
30 </head>
31 <body>
32 <div id="content">
33 <div id="library"><xsl:value-of select="/configdoc/title" /></div>
34 <h1><xsl:value-of select="$title" /></h1>
35 <div id="tocContainer">
36 <h2>Table of Contents</h2>
37 <ul id="toc">
38 <xsl:apply-templates mode="toc">
39 <xsl:with-param name="overflowNumber" select="round(count(/configdoc/namespace) div 2) + $maxNumberAdjust" />
40 </xsl:apply-templates>
41 </ul>
42 </div>
43 <div id="typesContainer">
44 <h2>Types</h2>
45 <xsl:apply-templates select="$typeLookup" mode="types" />
46 </div>
47 <xsl:apply-templates />
48 </div>
49 </body>
50 </html>
51 </xsl:template>
53 <xsl:template match="type" mode="types">
54 <div class="type-block">
55 <xsl:attribute name="id">type-<xsl:value-of select="@id" /></xsl:attribute>
56 <h3><code><xsl:value-of select="@id" /></code>: <xsl:value-of select="@name" /></h3>
57 <div class="type-description">
58 <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
59 </div>
60 </div>
61 </xsl:template>
63 <xsl:template match="title" mode="toc" />
64 <xsl:template match="namespace" mode="toc">
65 <xsl:param name="overflowNumber" />
66 <xsl:variable name="number"><xsl:number level="single" /></xsl:variable>
67 <xsl:variable name="directiveNumber"><xsl:number level="any" count="directive" /></xsl:variable>
68 <xsl:if test="count(directive)&gt;0">
69 <li>
70 <!-- BEGIN multicolumn code -->
71 <xsl:if test="$number &gt;= $overflowNumber">
72 <xsl:attribute name="class">col-2</xsl:attribute>
73 </xsl:if>
74 <xsl:if test="$number = $overflowNumber">
75 <xsl:attribute name="style">margin-top:-<xsl:value-of select="($number * 2 + $directiveNumber - 3) * 1.2" />em</xsl:attribute>
76 </xsl:if>
77 <!-- END multicolumn code -->
78 <a href="#{@id}"><xsl:value-of select="name" /></a>
79 <ul>
80 <xsl:apply-templates select="directive" mode="toc">
81 <xsl:with-param name="overflowNumber" select="$overflowNumber" />
82 </xsl:apply-templates>
83 </ul>
84 <xsl:if test="$number + 1 = $overflowNumber">
85 <div class="col-l" />
86 </xsl:if>
87 </li>
88 </xsl:if>
89 </xsl:template>
90 <xsl:template match="directive" mode="toc">
91 <xsl:variable name="number">
92 <xsl:number level="any" count="directive|namespace" />
93 </xsl:variable>
94 <xsl:if test="not(deprecated)">
95 <li>
96 <a href="#{@id}"><xsl:value-of select="name" /></a>
97 </li>
98 </xsl:if>
99 </xsl:template>
101 <xsl:template match="title" />
103 <xsl:template match="namespace">
104 <div class="namespace">
105 <xsl:apply-templates />
106 <xsl:if test="count(directive)=0">
107 <p>No configuration directives defined for this namespace.</p>
108 </xsl:if>
109 </div>
110 </xsl:template>
111 <xsl:template match="namespace/name">
112 <h2 id="{../@id}"><xsl:value-of select="." /></h2>
113 </xsl:template>
114 <xsl:template match="namespace/description">
115 <div class="description">
116 <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
117 </div>
118 </xsl:template>
120 <xsl:template match="directive">
121 <div>
122 <xsl:attribute name="class"><!--
123 -->directive<!--
124 --><xsl:if test="deprecated"> deprecated</xsl:if><!--
125 --></xsl:attribute>
126 <xsl:apply-templates>
127 <xsl:with-param name="id" select="@id" />
128 </xsl:apply-templates>
129 </div>
130 </xsl:template>
131 <xsl:template match="directive/name">
132 <xsl:param name="id" />
133 <xsl:apply-templates select="../aliases/alias" mode="anchor" />
134 <h3 id="{$id}"><xsl:value-of select="$id" /></h3>
135 </xsl:template>
136 <xsl:template match="alias" mode="anchor">
137 <a id="{.}"></a>
138 </xsl:template>
140 <!-- Do not pass through -->
141 <xsl:template match="alias"></xsl:template>
143 <xsl:template match="directive/constraints">
144 <xsl:param name="id" />
145 <table class="constraints">
146 <xsl:apply-templates />
147 <xsl:if test="../aliases/alias">
148 <xsl:apply-templates select="../aliases" mode="constraints" />
149 </xsl:if>
150 <xsl:apply-templates select="$usageLookup/directive[@id=$id]" />
151 </table>
152 </xsl:template>
153 <xsl:template match="directive/aliases" mode="constraints">
154 <tr>
155 <th>Aliases</th>
156 <td>
157 <xsl:for-each select="alias">
158 <xsl:if test="position()&gt;1">, </xsl:if>
159 <xsl:value-of select="." />
160 </xsl:for-each>
161 </td>
162 </tr>
163 </xsl:template>
164 <xsl:template match="directive/description">
165 <div class="description">
166 <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
167 </div>
168 </xsl:template>
169 <xsl:template match="directive/deprecated">
170 <div class="deprecated-notice">
171 <strong>Warning:</strong>
172 This directive was deprecated in version <xsl:value-of select="version" />.
173 <a href="#{use}">%<xsl:value-of select="use" /></a> should be used instead.
174 </div>
175 </xsl:template>
176 <xsl:template match="usage/directive">
177 <tr>
178 <th>Used in</th>
179 <td>
180 <ul>
181 <xsl:apply-templates />
182 </ul>
183 </td>
184 </tr>
185 </xsl:template>
186 <xsl:template match="usage/directive/file">
187 <li>
188 <em><xsl:value-of select="@name" /></em> on line<xsl:if test="count(line)&gt;1">s</xsl:if>
189 <xsl:text> </xsl:text>
190 <xsl:for-each select="line">
191 <xsl:if test="position()&gt;1">, </xsl:if>
192 <xsl:value-of select="." />
193 </xsl:for-each>
194 </li>
195 </xsl:template>
197 <xsl:template match="constraints/version">
198 <tr>
199 <th>Version added</th>
200 <td><xsl:value-of select="." /></td>
201 </tr>
202 </xsl:template>
203 <xsl:template match="constraints/type">
204 <tr>
205 <th>Type</th>
206 <td>
207 <xsl:variable name="type" select="text()" />
208 <xsl:attribute name="class">type type-<xsl:value-of select="$type" /></xsl:attribute>
210 <xsl:attribute name="href">#type-<xsl:value-of select="$type" /></xsl:attribute>
211 <xsl:value-of select="$typeLookup/type[@id=$type]/@name" />
212 <xsl:if test="@allow-null='yes'">
213 (or null)
214 </xsl:if>
215 </a>
216 </td>
217 </tr>
218 </xsl:template>
219 <xsl:template match="constraints/allowed">
220 <tr>
221 <th>Allowed values</th>
222 <td>
223 <xsl:for-each select="value"><!--
224 --><xsl:if test="position()&gt;1">, </xsl:if>
225 &quot;<xsl:value-of select="." />&quot;<!--
226 --></xsl:for-each>
227 </td>
228 </tr>
229 </xsl:template>
230 <xsl:template match="constraints/default">
231 <tr>
232 <th>Default</th>
233 <td><pre><xsl:value-of select="." xml:space="preserve" /></pre></td>
234 </tr>
235 </xsl:template>
236 <xsl:template match="constraints/external">
237 <tr>
238 <th>External deps</th>
239 <td>
240 <ul>
241 <xsl:apply-templates />
242 </ul>
243 </td>
244 </tr>
245 </xsl:template>
246 <xsl:template match="constraints/external/project">
247 <li><xsl:value-of select="." /></li>
248 </xsl:template>
250 </xsl:stylesheet>
252 <!-- vim: et sw=4 sts=4