Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / atf / dist / doc / standalone / sdocbook.xsl
blob1229450ddf8651c86ed3ddd06e400c6297153b2f
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE xsl:stylesheet [<!ENTITY nbsp "&#160;">]>
4 <xsl:stylesheet version="1.0"
5 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
7 <!-- ****************************************************************
8 Root templates.
9 **************************************************************** -->
11 <xsl:template match="/">
12 <xsl:copy>
13 <xsl:apply-templates select="@*|node()" />
14 </xsl:copy>
15 </xsl:template>
17 <xsl:template match="article">
18 <html xmlns="http://www.w3.org/1999/xhtml">
19 <head>
20 <xsl:call-template mode="top" name="generate-html-head" />
21 </head>
23 <body>
24 <xsl:call-template mode="top" name="generate-html-body" />
25 </body>
26 </html>
27 </xsl:template>
29 <!-- ****************************************************************
30 Templates for mode="top".
31 **************************************************************** -->
33 <xsl:template mode="top" match="*" priority="-1">
34 <xsl:text>UNMANAGED ELEMENT</xsl:text>
35 </xsl:template>
37 <xsl:template mode="top" name="generate-html-head">
38 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
40 <link rel="made" href="mailto:atf-devel AT NetBSD DOT org" />
41 <link rel="stylesheet" type="text/css" href="standalone.css" />
43 <xsl:apply-templates mode="html-head" />
44 </xsl:template>
46 <xsl:template mode="top" name="generate-html-body">
47 <div class="header">
48 <xsl:apply-templates mode="header" />
49 </div>
51 <div class="toc">
52 <xsl:call-template mode="toc" name="generate-toc" />
53 </div>
55 <div class="contents">
56 <xsl:apply-templates mode="contents">
57 <xsl:with-param name="depth" select="0" />
58 </xsl:apply-templates>
59 </div>
60 </xsl:template>
62 <!-- ****************************************************************
63 Templates for mode="html-head".
64 **************************************************************** -->
66 <xsl:template mode="html-head" match="*" priority="-1">
67 <xsl:text>UNMANAGED ELEMENT</xsl:text>
68 </xsl:template>
70 <xsl:template mode="html-head" match="articleinfo">
71 <title><xsl:value-of select="title" /></title>
72 </xsl:template>
74 <xsl:template mode="html-head" match="note|section|para" />
76 <!-- ****************************************************************
77 Templates for mode="header".
78 **************************************************************** -->
80 <xsl:template mode="header" match="*" priority="-1">
81 <xsl:text>UNMANAGED ELEMENT</xsl:text>
82 </xsl:template>
84 <xsl:template mode="header" match="articleinfo">
85 <p class="title">
86 <xsl:apply-templates mode="common" select="title" />
87 </p>
88 <p class="author">
89 <xsl:apply-templates mode="common" select="author" />
90 </p>
91 </xsl:template>
93 <xsl:template mode="header" match="note|section|para" />
95 <!-- ****************************************************************
96 Templates for mode="toc".
97 **************************************************************** -->
99 <xsl:template mode="toc" match="*" priority="-1">
100 <xsl:text>UNMANAGED ELEMENT</xsl:text>
101 </xsl:template>
103 <xsl:template mode="toc" name="generate-toc">
104 <h1><xsl:text>Contents</xsl:text></h1>
106 <xsl:call-template mode="toc" name="generate-entries" />
107 </xsl:template>
109 <xsl:template mode="toc" name="generate-entries">
110 <xsl:if test="section">
111 <ol>
112 <xsl:apply-templates mode="toc" select="section" />
113 </ol>
114 </xsl:if>
115 </xsl:template>
117 <xsl:template mode="toc" match="section">
118 <li>
119 <p><a href="#{@id}"><xsl:value-of select="title" /></a></p>
120 <xsl:call-template mode="toc" name="generate-entries" />
121 </li>
122 </xsl:template>
124 <!-- ****************************************************************
125 Templates for mode="contents".
126 **************************************************************** -->
128 <xsl:template mode="contents" match="*" priority="-1">
129 <xsl:text>UNMANAGED ELEMENT</xsl:text>
130 </xsl:template>
132 <xsl:template mode="contents" match="articleinfo" />
134 <xsl:template mode="contents" match="email">
135 <a href="mailto:{.}">&lt;<xsl:apply-templates />&gt;</a>
136 </xsl:template>
138 <xsl:template mode="contents" match="emphasis">
139 <xsl:choose>
140 <xsl:when test="@role = 'strong'">
141 <b><xsl:apply-templates mode="contents" /></b>
142 </xsl:when>
143 <xsl:otherwise>
144 <i><xsl:apply-templates mode="contents" /></i>
145 </xsl:otherwise>
146 </xsl:choose>
147 </xsl:template>
149 <xsl:template mode="contents" match="filename">
150 <tt class="filename"><xsl:apply-templates mode="contents" /></tt>
151 </xsl:template>
153 <xsl:template mode="contents" name="gen-title">
154 <a name="{@id}">
155 <xsl:apply-templates mode="common" select="title" />
156 </a>
157 </xsl:template>
159 <xsl:template mode="contents" match="itemizedlist">
160 <ul>
161 <xsl:apply-templates mode="contents" />
162 </ul>
163 </xsl:template>
165 <xsl:template mode="contents" match="listitem">
166 <li>
167 <xsl:apply-templates mode="contents" />
168 </li>
169 </xsl:template>
171 <xsl:template mode="contents" match="literal">
172 <tt><xsl:apply-templates mode="contents" /></tt>
173 </xsl:template>
175 <xsl:template mode="contents" match="note">
176 <div class="note">
177 <xsl:apply-templates />
178 </div>
179 </xsl:template>
181 <xsl:template mode="contents" match="orderedlist">
182 <ol>
183 <xsl:apply-templates mode="contents" />
184 </ol>
185 </xsl:template>
187 <xsl:template mode="contents" match="para">
188 <p xml:space="preserve"><xsl:apply-templates mode="contents" /></p>
189 </xsl:template>
191 <xsl:template mode="contents" match="section">
192 <xsl:param name="depth" />
194 <xsl:choose>
195 <xsl:when test="$depth = 0">
196 <h1><xsl:call-template mode="contents" name="gen-title" /></h1>
197 </xsl:when>
198 <xsl:when test="$depth = 1">
199 <h2><xsl:call-template mode="contents" name="gen-title" /></h2>
200 </xsl:when>
201 <xsl:when test="$depth = 2">
202 <h3><xsl:call-template mode="contents" name="gen-title" /></h3>
203 </xsl:when>
204 <xsl:when test="$depth = 3">
205 <h4><xsl:call-template mode="contents" name="gen-title" /></h4>
206 </xsl:when>
207 <xsl:when test="$depth = 4">
208 <h5><xsl:call-template mode="contents" name="gen-title" /></h5>
209 </xsl:when>
210 <xsl:when test="$depth = 5">
211 <h6><xsl:call-template mode="contents" name="gen-title" /></h6>
212 </xsl:when>
213 <xsl:otherwise>
214 <!-- XXX Can we raise an error from XSLT? -->
215 <h6>ERROR; SECTION NESTING TOO DEEP</h6>
216 </xsl:otherwise>
217 </xsl:choose>
219 <xsl:apply-templates mode="contents" select="*[position() &gt; 1]">
220 <xsl:with-param name="depth" select="$depth + 1" />
221 </xsl:apply-templates>
222 </xsl:template>
224 <xsl:template mode="contents" match="programlisting">
225 <pre class="{@role}"><xsl:apply-templates mode="contents" /></pre>
226 </xsl:template>
228 <xsl:template mode="contents" match="userinput">
229 <!-- TODO: Make this bold, but tidy messes it up -->
230 <xsl:apply-templates mode="contents" />
231 </xsl:template>
233 <xsl:template mode="contents" match="variablelist">
234 <ul>
235 <xsl:apply-templates mode="contents" />
236 </ul>
237 </xsl:template>
239 <xsl:template mode="contents" match="varlistentry">
240 <li>
241 <xsl:apply-templates mode="varlistentry" />
242 </li>
243 </xsl:template>
244 <xsl:template mode="varlistentry" match="term">
245 <p><b><u><xsl:apply-templates mode="contents" /></u></b></p>
246 </xsl:template>
247 <xsl:template mode="varlistentry" match="listitem">
248 <xsl:apply-templates mode="contents" />
249 </xsl:template>
251 <!-- ****************************************************************
252 Common templates.
253 **************************************************************** -->
255 <xsl:template mode="common" match="*" priority="-1">
256 <xsl:text>UNMANAGED ELEMENT</xsl:text>
257 </xsl:template>
259 <xsl:template mode="common" match="author">
260 <xsl:text>By </xsl:text>
261 <xsl:apply-templates select="firstname" />
262 <xsl:text> </xsl:text>
263 <xsl:apply-templates select="surname" />
264 <xsl:if test="affiliation">
265 <xsl:text>, </xsl:text>
266 <xsl:apply-templates select="affiliation/orgname" />
267 </xsl:if>
268 </xsl:template>
270 <xsl:template mode="common" match="title">
271 <xsl:apply-templates />
272 </xsl:template>
274 </xsl:stylesheet>
276 <!--
277 vim: syntax=xslt:expandtab:shiftwidth=2:softtabstop=2