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"/>
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/>
73 <xsl:template match=
"/node()">
74 <xsl:text disable-output-escaping=
"yes">
75 <!DOCTYPE
</xsl:text><xsl:value-of select=
"name(.)"/><xsl:text disable-output-escaping=
"yes"> PUBLIC
"-//OASIS//DTD DocBook XML V4.2//EN"
76 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
78 <!ENTITY % globalentities SYSTEM 'entities/global.entities'
> %globalentities;
82 <xsl:attribute name=
"id"><xsl:value-of select=
"@id"/></xsl:attribute>
83 <xsl:apply-templates/>
88 <!-- This is needed to copy content unchanged -->
89 <xsl:template match=
"@*|node()">
92 <xsl:apply-templates select=
"@*|node()"/>
96 <xsl:template match=
"smbconfexample/smbconfoption|smbconfblock/smbconfoption">
98 <xsl:element name=
"member">
99 <xsl:element name=
"indexterm">
100 <xsl:element name=
"primary">
101 <xsl:value-of select=
"name"/>
104 <xsl:element name=
"parameter">
105 <xsl:text disable-output-escaping=
"yes">
106 <?latex \hspace{
1cm} ?
>
108 <xsl:value-of select=
"name"/>
110 <xsl:when test=
"value != ''">
111 <xsl:text> =
</xsl:text>
112 <xsl:value-of select=
"value"/>
119 <xsl:template match=
"smbconfexample/smbconfcomment|smbconfblock/smbconfcomment">
120 <xsl:text disable-output-escaping=
"yes">
121 <?latex \hspace{
1cm} ?
>
123 <xsl:element name=
"member">
124 <xsl:text>#
</xsl:text>
125 <xsl:apply-templates/>
129 <xsl:template match=
"smbconfexample/smbconfsection|smbconfblock/smbconfsection">
130 <xsl:element name=
"member">
131 <xsl:text> </xsl:text>
133 <xsl:element name=
"member">
134 <xsl:element name=
"parameter">
135 <xsl:apply-templates/>
140 <xsl:template match=
"smbconfoption">
141 <!-- Include an index term -->
142 <xsl:element name=
"indexterm">
143 <xsl:element name=
"primary">
144 <xsl:value-of select=
"name"/>
148 <xsl:variable name=
"linkcontent">
149 <xsl:element name=
"parameter">
150 <xsl:attribute name=
"moreinfo">
151 <xsl:text>none
</xsl:text>
153 <xsl:value-of select=
"name"/>
157 <xsl:when test=
"value != ''">
158 <xsl:text> =
</xsl:text>
159 <xsl:value-of select=
"value"/>
165 <xsl:when test=
"$noreference = 1">
166 <xsl:value-of select=
"$linkcontent"/>
169 <xsl:element name=
"link">
170 <xsl:attribute name=
"linkend">
171 <xsl:value-of select=
"translate(translate(string(name),' ',''),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
173 <xsl:value-of select=
"$linkcontent"/>
179 <!-- FIXME: Needs extension sometime -->
180 <xsl:template match=
"ntgroup|ntuser">
181 <xsl:element name=
"emphasis">
182 <xsl:apply-templates/>
186 <xsl:template match=
"smbconfexample">
188 <xsl:when test=
"title = ''">
190 <xsl:text>Warning: smbconfexample does not have title!
</xsl:text>
194 <xsl:element name=
"example">
196 <xsl:when test=
"@id != ''">
197 <xsl:attribute name=
"id">
198 <xsl:value-of select=
"@id"/>
203 <xsl:element name=
"title">
204 <xsl:value-of select=
"title"/>
206 <xsl:element name=
"simplelist">
207 <xsl:apply-templates/>
212 <xsl:template match=
"smbconfexample/title">
215 <xsl:template match=
"smbconfblock">
216 <xsl:element name=
"simplelist">
217 <xsl:apply-templates/>
221 <xsl:template match=
"smbconfsection">
222 <xsl:element name=
"parameter">
223 <xsl:apply-templates/>
227 <xsl:template match=
"smbconfcomment">
228 <xsl:text>#
</xsl:text>
229 <xsl:apply-templates/>
232 <xsl:template match=
"smbfile">
233 <xsl:apply-templates/>
236 <xsl:template match=
"image">
237 <xsl:element name=
"figure">
238 <xsl:attribute name=
"id">
240 <xsl:when test=
"@id != ''">
241 <xsl:value-of select=
"@id"/>
244 <xsl:value-of select=
"imagefile"/>
249 <xsl:element name=
"title">
250 <xsl:value-of select=
"imagedescription"/>
252 <xsl:element name=
"mediaobject">
253 <xsl:element name=
"imageobject">
254 <xsl:attribute name=
"role"><xsl:text>latex
</xsl:text></xsl:attribute>
255 <xsl:element name=
"imagedata">
256 <xsl:attribute name=
"fileref">
257 <xsl:text>howto/imagefiles/
</xsl:text><xsl:value-of select=
"imagefile"/></xsl:attribute>
258 <xsl:attribute name=
"scale">
260 <xsl:when test=
"@scale != ''">
261 <xsl:value-of select=
"@scale"/>
265 <xsl:text>50</xsl:text>
269 <xsl:attribute name=
"scalefit"><xsl:text>1</xsl:text></xsl:attribute>
272 <xsl:element name=
"imageobject">
273 <xsl:element name=
"imagedata">
274 <xsl:attribute name=
"fileref">
275 <xsl:text>howto/imagefiles/
</xsl:text><xsl:value-of select=
"imagefile"/><xsl:text>.png
</xsl:text></xsl:attribute>
276 <xsl:attribute name=
"scale"><xsl:text>50</xsl:text></xsl:attribute>
277 <xsl:attribute name=
"scalefit"><xsl:text>1</xsl:text></xsl:attribute>
284 <xsl:template match=
"description"><xsl:apply-templates/></xsl:template>
286 <xsl:template match=
"value"><xsl:apply-templates/></xsl:template>
288 <xsl:template match=
"synonym"><xsl:apply-templates/></xsl:template>
290 <xsl:template match=
"related"><xsl:apply-templates/></xsl:template>
292 <xsl:template match=
"filterline">
293 <xsl:element name=
"programlisting">
294 <xsl:apply-templates/>
298 <xsl:template match=
"//samba:parameterlist">
299 <xsl:apply-templates>
300 <xsl:sort select=
"varlistentry/term/anchor"/>
301 </xsl:apply-templates>
304 <xsl:template match=
"value/comment">
305 <xsl:text> #
</xsl:text>
306 <xsl:apply-templates/>
309 <xsl:template match=
"//samba:parameter">
310 <!-- reconstruct varlistentry - not all of them will go into separate files
311 and also we must repair the main varlistentry itself.
313 <xsl:variable name=
"cname"><xsl:value-of select=
"translate(translate(string(@name),' ',''),
314 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
317 <xsl:variable name=
"name"><xsl:value-of select=
"@name"/></xsl:variable>
319 <xsl:variable name=
"anchor">
320 <xsl:element name=
"anchor">
321 <xsl:attribute name=
"id">
322 <xsl:value-of select=
"$cname"/>
327 <xsl:variable name=
"context">
328 <xsl:text> (
</xsl:text>
329 <xsl:value-of select=
"@context"/>
330 <xsl:text>)
</xsl:text>
333 <xsl:variable name=
"term">
334 <xsl:element name=
"term">
335 <xsl:copy-of select=
"$anchor"/>
336 <xsl:value-of select=
"@name"/>
337 <xsl:value-of select=
"$context"/>
342 <!-- Generate list of examples -->
343 <xsl:variable name=
"examples">
344 <xsl:for-each select=
"value">
345 <xsl:if test=
"@type = 'example'">
346 <xsl:element name=
"para">
347 <xsl:text>Example:
</xsl:text>
348 <xsl:element name=
"emphasis">
349 <xsl:element name=
"parameter">
350 <xsl:copy-of select=
"$name"/>
352 <xsl:text> =
</xsl:text>
353 <xsl:apply-templates select=
"."/>
354 <xsl:text> </xsl:text>
356 <xsl:text> </xsl:text>
362 <xsl:variable name=
"tdefault">
363 <xsl:for-each select=
"value">
364 <xsl:if test=
"@type = 'default'">
365 <xsl:element name=
"para">
366 <xsl:text>Default:
</xsl:text>
367 <xsl:element name=
"emphasis">
368 <xsl:element name=
"parameter">
369 <xsl:copy-of select=
"$name"/>
371 <xsl:text> =
</xsl:text>
372 <xsl:apply-templates select=
"."/>
373 <xsl:text> </xsl:text>
375 <xsl:text> </xsl:text>
381 <xsl:variable name=
"default">
383 <xsl:when test=
"$tdefault = ''">
384 <xsl:element name=
"para">
385 <xsl:element name=
"emphasis">
386 <xsl:text>No default
</xsl:text>
391 <xsl:copy-of select=
"$tdefault"/>
396 <xsl:variable name=
"content">
397 <xsl:apply-templates select=
"description"/>
400 <xsl:for-each select=
"synonym">
401 <xsl:element name=
"varlistentry">
402 <xsl:text> </xsl:text>
403 <xsl:element name=
"indexterm">
404 <xsl:attribute name=
"significance">
405 <xsl:text>preferred
</xsl:text>
407 <xsl:element name=
"primary">
408 <xsl:value-of select=
"."/>
410 <xsl:element name=
"see">
411 <xsl:value-of select=
"$name"/>
415 <xsl:element name=
"term">
416 <xsl:element name=
"anchor">
417 <xsl:attribute name=
"id">
418 <xsl:value-of select=
"translate(translate(string(.),' ',''), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
421 <xsl:value-of select=
"."/>
424 <xsl:element name=
"listitem">
425 <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>
430 <xsl:element name=
"varlistentry">
431 <xsl:text> </xsl:text>
432 <xsl:element name=
"indexterm">
433 <xsl:attribute name=
"significance">
434 <xsl:text>preferred
</xsl:text>
436 <xsl:element name=
"primary">
437 <xsl:value-of select=
"@name"/>
440 <xsl:copy-of select=
"$term"/>
441 <xsl:element name=
"listitem">
442 <xsl:copy-of select=
"$content"/> <xsl:text> </xsl:text>
443 <xsl:copy-of select=
"$default"/> <xsl:text> </xsl:text>
444 <xsl:copy-of select=
"$examples"/> <xsl:text> </xsl:text>
449 <xsl:template match=
"ulink">
450 <xsl:element name=
"ulink">
451 <xsl:attribute name=
"url">
452 <xsl:value-of select=
"@url"/>
455 <xsl:apply-templates/>
456 <xsl:if test=
"contains(@url,'http://') or contains(@url,'ftp://')">
457 <xsl:if test=
"$duplicate_ulinks='brackets'">
458 <xsl:text> (
</xsl:text>
459 <xsl:value-of select=
"@url"/>
460 <xsl:text>)
</xsl:text>
462 <xsl:if test=
"$duplicate_ulinks='footnote'">
463 <xsl:element name=
"footnote">
464 <xsl:element name=
"para">
465 <xsl:value-of select=
"@url"/>
473 <!-- Just ignore these -->
474 <xsl:template match=
"smbfile">
475 <xsl:apply-templates/>
478 <xsl:template match=
"quote">
479 <xsl:element name=
"quote">
480 <xsl:element name=
"emphasis">
481 <xsl:apply-templates/>