3 Samba-documentation specific stylesheets
4 Published under the GNU GPL
6 (C) Jelmer Vernooij 2002-2004
7 (C) Alexander Bokovoy 2002-2004
9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10 xmlns:exsl="http://exslt.org/common"
11 xmlns:samba="http://samba.org/common"
13 extension-element-prefixes="exsl">
15 <xsl:import href="../settings.xsl"/>
17 <xsl:output method="xml" encoding="UTF-8" doctype-public="-//OASIS//DTD DocBook XML V4.2//EN" indent="yes" doctype-system="http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"/>
19 <xsl:param name="xmlSambaNsUri" select="'http://samba.org/common'"/>
21 <xsl:template match="reference/refentry/refsect1">
22 <xsl:if test="title!='VERSION' and title!='AUTHOR'">
23 <xsl:element name="refsect1">
24 <xsl:if test="@id!=''">
25 <xsl:attribute name="id">
26 <xsl:value-of select="@id"/>
29 <xsl:apply-templates/>
34 <xsl:template match="translator">
35 <xsl:element name="othercredit">
36 <xsl:element name="author">
37 <xsl:apply-templates/>
38 <xsl:element name="contrib">
39 <xsl:text>Translation to </xsl:text><xsl:value-of select="@lang"/>
45 <xsl:template match="reference/refentry">
46 <xsl:element name="section">
47 <xsl:attribute name="id">
48 <xsl:value-of select="@id"/>
50 <xsl:element name="title">
51 <xsl:value-of select="refmeta/refentrytitle"/>
52 <!-- <xsl:text> (</xsl:text>
53 <xsl:value-of select="refnamediv/refpurpose"/>
54 <xsl:text>)</xsl:text>-->
56 <xsl:apply-templates/>
60 <xsl:template match="reference/refentry/refmeta"/>
62 <xsl:template match="reference/refentry/refnamediv"/>
64 <xsl:template match="reference">
65 <xsl:element name="appendix">
66 <xsl:attribute name="id">
67 <xsl:value-of select="@id"/>
69 <xsl:apply-templates/>
74 <!-- This is needed to copy content unchanged -->
75 <xsl:template match="@*|node()">
77 <xsl:apply-templates select="@*|node()"/>
81 <xsl:template match="amconfexample/amconfoption|amconfblock/amconfoption">
83 <xsl:element name="member">
84 <xsl:element name="indexterm">
85 <xsl:element name="primary">
86 <xsl:value-of select="name"/>
89 <xsl:element name="parameter">
90 <xsl:text disable-output-escaping="yes">
91 <?latex \hspace{1cm} ?>
93 <xsl:value-of select="name"/>
95 <xsl:when test="value != ''">
96 <xsl:text> = </xsl:text>
97 <xsl:value-of select="value"/>
104 <xsl:template match="amconfexample/amconfoption|amconfblock/amconfcomment">
105 <xsl:text disable-output-escaping="yes">
106 <?latex \hspace{1cm} ?>
108 <xsl:element name="member">
109 <xsl:text># </xsl:text>
110 <xsl:apply-templates/>
114 <xsl:template match="amconfexample/amconfoption|amconfblock/amconfsection">
115 <xsl:element name="member">
116 <xsl:text> </xsl:text>
118 <xsl:element name="member">
119 <xsl:element name="parameter">
120 <xsl:apply-templates/>
125 <xsl:template match="amconfoption">
126 <!-- Include an index term -->
127 <xsl:element name="indexterm">
128 <xsl:element name="primary">
129 <xsl:value-of select="name"/>
133 <xsl:variable name="linkcontent">
134 <xsl:element name="parameter">
135 <xsl:attribute name="moreinfo">
136 <xsl:text>none</xsl:text>
138 <xsl:value-of select="name"/>
142 <xsl:when test="value != ''">
143 <xsl:text> = </xsl:text>
144 <xsl:value-of select="value"/>
150 <xsl:when test="$noreference = 1">
151 <xsl:value-of select="$linkcontent"/>
154 <xsl:element name="link">
155 <xsl:attribute name="linkend">
156 <xsl:value-of select="translate(translate(string(name),' ',''),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
158 <xsl:value-of select="$linkcontent"/>
164 <!-- FIXME: Needs extension sometime -->
165 <xsl:template match="ntgroup|ntuser">
166 <xsl:element name="emphasis">
167 <xsl:apply-templates/>
171 <xsl:template match="amconfexample">
173 <xsl:when test="title = ''">
175 <xsl:text>Warning: amconfexample does not have title!</xsl:text>
179 <xsl:element name="example">
181 <xsl:when test="@id != ''">
182 <xsl:attribute name="id">
183 <xsl:value-of select="@id"/>
188 <xsl:element name="title">
189 <xsl:value-of select="title"/>
191 <xsl:element name="simplelist">
192 <xsl:apply-templates/>
197 <xsl:template match="amconfexample/title">
200 <xsl:template match="amconfblock">
201 <xsl:element name="simplelist">
202 <xsl:apply-templates/>
206 <xsl:template match="amconfsection">
207 <xsl:element name="parameter">
208 <xsl:apply-templates/>
212 <xsl:template match="amconfcomment">
213 <xsl:text># </xsl:text>
214 <xsl:apply-templates/>
217 <xsl:template match="smbfile">
218 <xsl:apply-templates/>
221 <xsl:template match="image">
222 <xsl:element name="figure">
223 <xsl:attribute name="id">
225 <xsl:when test="@id != ''">
226 <xsl:value-of select="@id"/>
229 <xsl:value-of select="imagefile"/>
234 <xsl:element name="title">
235 <xsl:value-of select="imagedescription"/>
237 <xsl:element name="mediaobject">
238 <xsl:element name="imageobject">
239 <xsl:attribute name="role"><xsl:text>latex</xsl:text></xsl:attribute>
240 <xsl:element name="imagedata">
241 <xsl:attribute name="fileref">
242 <xsl:value-of select="$imagedir"/><xsl:value-of select="imagefile"/></xsl:attribute>
243 <xsl:attribute name="scale">
245 <xsl:when test="@scale != ''">
246 <xsl:value-of select="@scale"/>
250 <xsl:text>50</xsl:text>
254 <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
257 <xsl:element name="imageobject">
258 <xsl:attribute name="role"><xsl:text>html</xsl:text></xsl:attribute>
259 <xsl:element name="imagedata">
260 <xsl:attribute name="fileref">
261 <xsl:text>images/</xsl:text><xsl:value-of select="imagefile"/><xsl:text>.png</xsl:text></xsl:attribute>
262 <xsl:attribute name="scale"><xsl:text>50</xsl:text></xsl:attribute>
263 <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
266 <xsl:element name="imageobject">
267 <xsl:element name="imagedata">
268 <xsl:attribute name="fileref">
269 <xsl:text>images/</xsl:text><xsl:value-of select="imagefile"/><xsl:text>.png</xsl:text></xsl:attribute>
270 <xsl:attribute name="scale"><xsl:text>50</xsl:text></xsl:attribute>
271 <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
279 <xsl:template match="description"><xsl:apply-templates/></xsl:template>
281 <xsl:template match="value"><xsl:apply-templates/></xsl:template>
283 <xsl:template match="synonym"><xsl:apply-templates/></xsl:template>
285 <xsl:template match="related"><xsl:apply-templates/></xsl:template>
287 <xsl:template match="filterline">
288 <xsl:element name="programlisting">
289 <xsl:apply-templates/>
293 <xsl:template match="//samba:parameterlist">
294 <xsl:apply-templates>
295 <xsl:sort select="varlistentry/term/anchor"/>
296 </xsl:apply-templates>
299 <xsl:template match="value/comment">
300 <xsl:text> # </xsl:text>
301 <xsl:apply-templates/>
304 <xsl:template match="//samba:parameter">
305 <!-- reconstruct varlistentry - not all of them will go into separate files
306 and also we must repair the main varlistentry itself.
308 <xsl:variable name="cname"><xsl:value-of select="translate(translate(string(@name),' ',''),
309 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
312 <xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
314 <xsl:variable name="anchor">
315 <xsl:element name="anchor">
316 <xsl:attribute name="id">
317 <xsl:value-of select="$cname"/>
322 <xsl:variable name="context">
323 <xsl:text> (</xsl:text>
324 <xsl:value-of select="@context"/>
325 <xsl:text>)</xsl:text>
328 <xsl:variable name="term">
329 <xsl:element name="term">
330 <xsl:copy-of select="$anchor"/>
331 <xsl:value-of select="@name"/>
332 <xsl:value-of select="$context"/>
337 <!-- Generate list of examples -->
338 <xsl:variable name="examples">
339 <xsl:for-each select="value">
340 <xsl:if test="@type = 'example'">
341 <xsl:element name="para">
342 <xsl:text>Example: </xsl:text>
343 <xsl:element name="emphasis">
344 <xsl:element name="parameter">
345 <xsl:copy-of select="$name"/>
347 <xsl:text> = </xsl:text>
348 <xsl:apply-templates select="."/>
349 <xsl:text> </xsl:text>
351 <xsl:text> </xsl:text>
357 <xsl:variable name="tdefault">
358 <xsl:for-each select="value">
359 <xsl:if test="@type = 'default'">
360 <xsl:element name="para">
361 <xsl:text>Default: </xsl:text>
362 <xsl:element name="emphasis">
363 <xsl:element name="parameter">
364 <xsl:copy-of select="$name"/>
366 <xsl:text> = </xsl:text>
367 <xsl:apply-templates select="."/>
368 <xsl:text> </xsl:text>
370 <xsl:text> </xsl:text>
376 <xsl:variable name="default">
378 <xsl:when test="$tdefault = ''">
379 <xsl:element name="para">
380 <xsl:element name="emphasis">
381 <xsl:text>No default</xsl:text>
386 <xsl:copy-of select="$tdefault"/>
391 <xsl:variable name="content">
392 <xsl:apply-templates select="description"/>
395 <xsl:for-each select="synonym">
396 <xsl:element name="varlistentry">
397 <xsl:text> </xsl:text>
398 <xsl:element name="indexterm">
399 <xsl:attribute name="significance">
400 <xsl:text>preferred</xsl:text>
402 <xsl:element name="primary">
403 <xsl:value-of select="."/>
405 <xsl:element name="see">
406 <xsl:value-of select="$name"/>
410 <xsl:element name="term">
411 <xsl:element name="anchor">
412 <xsl:attribute name="id">
413 <xsl:value-of select="translate(translate(string(.),' ',''), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
416 <xsl:value-of select="."/>
419 <xsl:element name="listitem">
420 <xsl:element name="para"><xsl:text>This parameter is a synonym for </xsl:text><xsl:copy-of select="$name"/><xsl:text>.</xsl:text></xsl:element>
425 <xsl:element name="varlistentry">
426 <xsl:text> </xsl:text>
427 <xsl:element name="indexterm">
428 <xsl:attribute name="significance">
429 <xsl:text>preferred</xsl:text>
431 <xsl:element name="primary">
432 <xsl:value-of select="@name"/>
435 <xsl:copy-of select="$term"/>
436 <xsl:element name="listitem">
437 <xsl:copy-of select="$content"/> <xsl:text> </xsl:text>
438 <xsl:copy-of select="$default"/> <xsl:text> </xsl:text>
439 <xsl:copy-of select="$examples"/> <xsl:text> </xsl:text>
444 <xsl:template match="ulink">
445 <xsl:element name="ulink">
446 <xsl:attribute name="url">
447 <xsl:value-of select="@url"/>
450 <xsl:apply-templates/>
451 <xsl:if test="contains(@url,'http://') or contains(@url,'ftp://')">
452 <xsl:if test="$duplicate_ulinks='brackets'">
453 <xsl:text> (</xsl:text>
454 <xsl:value-of select="@url"/>
455 <xsl:text>)</xsl:text>
457 <xsl:if test="$duplicate_ulinks='footnote'">
458 <xsl:element name="footnote">
459 <xsl:element name="para">
460 <xsl:value-of select="@url"/>
468 <!-- Just ignore these -->
469 <xsl:template match="smbfile">
470 <xsl:apply-templates/>
473 <xsl:template match="quote">
474 <xsl:element name="quote">
475 <xsl:element name="emphasis">
476 <xsl:apply-templates/>
481 <!-- New chapter-template for displaying html-urls -->
484 <xsl:template match="chapter">
486 <xsl:element name="para">
487 <xsl:element name="note">
488 <xsl:text>Refer to </xsl:text>
489 <xsl:element name="ulink">
490 <xsl:attribute name="url">
491 <xsl:text>http://www.amanda.org/docs/</xsl:text>
492 <xsl:value-of select="@id"/>
493 <xsl:text>.html</xsl:text>
495 <xsl:text>http://www.amanda.org/docs/</xsl:text>
496 <xsl:value-of select="@id"/>
497 <xsl:text>.html</xsl:text>
499 <xsl:text> for the current version of this
503 <xsl:apply-templates select="@*|node()"/>