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=
"smbconfexample/smbconfoption|smbconfblock/smbconfoption">
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=
"smbconfexample/smbconfcomment|smbconfblock/smbconfcomment">
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=
"smbconfexample/smbconfsection|smbconfblock/smbconfsection">
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=
"smbconfoption">
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=
"smbconfexample">
173 <xsl:when test=
"title = ''">
175 <xsl:text>Warning: smbconfexample 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=
"smbconfexample/title">
200 <xsl:template match=
"smbconfblock">
201 <xsl:element name=
"simplelist">
202 <xsl:apply-templates/>
206 <xsl:template match=
"smbconfsection">
207 <xsl:element name=
"parameter">
208 <xsl:apply-templates/>
212 <xsl:template match=
"smbconfcomment">
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:if test=
"imagedescription = ''">
236 <xsl:message><xsl:text>imagedescription of image with id
</xsl:text><xsl:value-of select=
"@id"/><xsl:text> is empty.
</xsl:text></xsl:message>
238 <xsl:value-of select=
"imagedescription"/>
240 <xsl:element name=
"mediaobject">
241 <xsl:element name=
"imageobject">
242 <xsl:attribute name=
"role"><xsl:text>latex
</xsl:text></xsl:attribute>
243 <xsl:element name=
"imagedata">
244 <xsl:attribute name=
"fileref">
245 <xsl:value-of select=
"$latex.imagebasedir"/><xsl:text>images/
</xsl:text><xsl:value-of select=
"imagefile"/></xsl:attribute>
246 <xsl:attribute name=
"scale">
248 <xsl:when test=
"@scale != ''">
249 <xsl:value-of select=
"@scale"/>
253 <xsl:text>50</xsl:text>
257 <xsl:attribute name=
"scalefit"><xsl:text>1</xsl:text></xsl:attribute>
260 <xsl:element name=
"imageobject">
261 <xsl:attribute name=
"role"><xsl:text>html
</xsl:text></xsl:attribute>
262 <xsl:element name=
"imagedata">
263 <xsl:attribute name=
"fileref">
264 <xsl:text>images/
</xsl:text><xsl:value-of select=
"imagefile"/><xsl:text>.png
</xsl:text></xsl:attribute>
265 <xsl:attribute name=
"scale"><xsl:text>50</xsl:text></xsl:attribute>
266 <xsl:attribute name=
"scalefit"><xsl:text>1</xsl:text></xsl:attribute>
269 <xsl:element name=
"imageobject">
270 <xsl:element name=
"imagedata">
271 <xsl:attribute name=
"fileref">
272 <xsl:text>images/
</xsl:text><xsl:value-of select=
"imagefile"/><xsl:text>.png
</xsl:text></xsl:attribute>
273 <xsl:attribute name=
"scale"><xsl:text>50</xsl:text></xsl:attribute>
274 <xsl:attribute name=
"scalefit"><xsl:text>1</xsl:text></xsl:attribute>
282 <xsl:template match=
"description"><xsl:apply-templates/></xsl:template>
284 <xsl:template match=
"value"><xsl:apply-templates/></xsl:template>
286 <xsl:template match=
"synonym"><xsl:apply-templates/></xsl:template>
288 <xsl:template match=
"related"><xsl:apply-templates/></xsl:template>
290 <xsl:template match=
"filterline">
291 <xsl:element name=
"programlisting">
292 <xsl:apply-templates/>
296 <xsl:template match=
"//samba:parameterlist">
297 <xsl:apply-templates>
298 <xsl:sort select=
"varlistentry/term/anchor"/>
299 </xsl:apply-templates>
302 <xsl:template match=
"value/comment">
303 <xsl:text> #
</xsl:text>
304 <xsl:apply-templates/>
307 <xsl:template match=
"//samba:parameter">
308 <!-- reconstruct varlistentry - not all of them will go into separate files
309 and also we must repair the main varlistentry itself.
311 <xsl:variable name=
"cname"><xsl:value-of select=
"translate(translate(string(@name),' ',''),
312 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
315 <xsl:variable name=
"name"><xsl:value-of select=
"@name"/></xsl:variable>
317 <xsl:variable name=
"anchor">
318 <xsl:element name=
"anchor">
319 <xsl:attribute name=
"id">
320 <xsl:value-of select=
"$cname"/>
325 <xsl:variable name=
"context">
326 <xsl:text> (
</xsl:text>
327 <xsl:value-of select=
"@context"/>
328 <xsl:text>)
</xsl:text>
331 <xsl:variable name=
"term">
332 <xsl:element name=
"term">
333 <xsl:copy-of select=
"$anchor"/>
334 <xsl:value-of select=
"@name"/>
335 <xsl:value-of select=
"$context"/>
340 <!-- Generate list of examples -->
341 <xsl:variable name=
"examples">
342 <xsl:for-each select=
"value">
343 <xsl:if test=
"@type = 'example'">
344 <xsl:element name=
"para">
345 <xsl:text>Example:
</xsl:text>
346 <xsl:element name=
"emphasis">
347 <xsl:element name=
"parameter">
348 <xsl:copy-of select=
"$name"/>
350 <xsl:text> =
</xsl:text>
351 <xsl:apply-templates select=
"."/>
352 <xsl:text> </xsl:text>
354 <xsl:text> </xsl:text>
360 <xsl:variable name=
"tdefault">
361 <xsl:for-each select=
"value">
362 <xsl:if test=
"@type = 'default'">
363 <xsl:element name=
"para">
364 <xsl:text>Default:
</xsl:text>
365 <xsl:element name=
"emphasis">
366 <xsl:element name=
"parameter">
367 <xsl:copy-of select=
"$name"/>
369 <xsl:text> =
</xsl:text>
370 <xsl:apply-templates select=
"."/>
371 <xsl:text> </xsl:text>
373 <xsl:text> </xsl:text>
379 <xsl:variable name=
"default">
381 <xsl:when test=
"$tdefault = ''">
382 <xsl:element name=
"para">
383 <xsl:element name=
"emphasis">
384 <xsl:text>No default
</xsl:text>
389 <xsl:copy-of select=
"$tdefault"/>
394 <xsl:variable name=
"content">
395 <xsl:apply-templates select=
"description"/>
398 <xsl:for-each select=
"synonym">
399 <xsl:element name=
"varlistentry">
400 <xsl:text> </xsl:text>
401 <xsl:element name=
"indexterm">
402 <xsl:attribute name=
"significance">
403 <xsl:text>preferred
</xsl:text>
405 <xsl:element name=
"primary">
406 <xsl:value-of select=
"."/>
408 <xsl:element name=
"see">
409 <xsl:value-of select=
"$name"/>
413 <xsl:element name=
"term">
414 <xsl:element name=
"anchor">
415 <xsl:attribute name=
"id">
416 <xsl:value-of select=
"translate(translate(string(.),' ',''), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
419 <xsl:value-of select=
"."/>
422 <xsl:element name=
"listitem">
423 <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>
428 <xsl:element name=
"varlistentry">
429 <xsl:text> </xsl:text>
430 <xsl:element name=
"indexterm">
431 <xsl:attribute name=
"significance">
432 <xsl:text>preferred
</xsl:text>
434 <xsl:element name=
"primary">
435 <xsl:value-of select=
"@name"/>
438 <xsl:copy-of select=
"$term"/>
439 <xsl:element name=
"listitem">
440 <xsl:copy-of select=
"$content"/> <xsl:text> </xsl:text>
441 <xsl:copy-of select=
"$default"/> <xsl:text> </xsl:text>
442 <xsl:copy-of select=
"$examples"/> <xsl:text> </xsl:text>
447 <xsl:template match=
"ulink">
448 <xsl:element name=
"ulink">
449 <xsl:attribute name=
"url">
450 <xsl:value-of select=
"@url"/>
453 <xsl:apply-templates/>
454 <xsl:if test=
"contains(@url,'http://') or contains(@url,'ftp://')">
455 <xsl:if test=
"$duplicate_ulinks='brackets'">
456 <xsl:text> (
</xsl:text>
457 <xsl:value-of select=
"@url"/>
458 <xsl:text>)
</xsl:text>
460 <xsl:if test=
"$duplicate_ulinks='footnote'">
461 <xsl:element name=
"footnote">
462 <xsl:element name=
"para">
463 <xsl:value-of select=
"@url"/>
471 <!-- Just ignore these -->
472 <xsl:template match=
"smbfile">
473 <xsl:apply-templates/>
476 <xsl:template match=
"quote">
477 <xsl:element name=
"quote">
478 <xsl:element name=
"emphasis">
479 <xsl:apply-templates/>