Next update of VFS modules development guide
[kai/samba.git] / docs / xslt / expand-sambadoc.xsl
1 <?xml version='1.0'?>
2 <!-- 
3         Samba-documentation specific stylesheets
4         Published under the GNU GPL
5
6         (C) Jelmer Vernooij                                     2002-2004
7 -->
8 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9         xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"
10         version="1.1">
11
12         <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"/>
13
14         <xsl:include href="strip-references.xsl"/>
15         <xsl:include href="expand-smbconfdoc.xsl"/>
16
17         <!-- This is needed to copy content unchanged -->
18         <xsl:template match="@*|node()">
19                 <xsl:copy>
20                         <xsl:apply-templates select="@*|node()"/>
21                 </xsl:copy>
22         </xsl:template>
23
24         <xsl:template name="smbconfoption">
25                 <xsl:param name="name"/>
26                 <xsl:param name="content"/>
27                 <xsl:variable name="linkcontent">
28                         <xsl:element name="parameter">
29                                 <xsl:attribute name="moreinfo">
30                                         <xsl:text>none</xsl:text>
31                                 </xsl:attribute>
32                                 <xsl:value-of select="$name"/>  
33                         </xsl:element>
34
35                         <xsl:choose>
36                                 <xsl:when test="$content != ''">
37                                         <xsl:text> = </xsl:text>
38                                         <xsl:value-of select="$content"/>
39                                 </xsl:when>
40                         </xsl:choose>
41                 </xsl:variable>
42
43                 <xsl:choose>
44                         <xsl:when test="$noreference = 1">
45                                 <xsl:value-of select="$linkcontent"/>
46                         </xsl:when>
47                         <xsl:otherwise>
48                                 <xsl:element name="link">
49                                         <xsl:attribute name="linkend">
50                                                 <xsl:value-of select="translate(translate(string($name),' ',''),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
51                                         </xsl:attribute>
52                                         <xsl:value-of select="$linkcontent"/>
53                                 </xsl:element>
54                         </xsl:otherwise>
55                 </xsl:choose>
56         </xsl:template>
57
58         <xsl:template match="related">
59                 <xsl:element name="para">
60                         <xsl:text>Related command: </xsl:text>
61                         <xsl:call-template name="smbconfoption">
62                                 <xsl:with-param name="name" select="text()"/>
63                         </xsl:call-template>
64                 </xsl:element>
65         </xsl:template>
66
67         <xsl:template match="smbconfblock/smbconfoption">
68                 <xsl:element name="member">
69                         <xsl:element name="indexterm">
70                                         <xsl:value-of select="@name"/>
71                         </xsl:element>
72                         <xsl:choose>
73                                 <xsl:when test="text() != ''">
74                                         <xsl:element name="parameter">
75                                                 <xsl:value-of select="@name"/>
76                                                 <xsl:text> = </xsl:text>
77                                                 <xsl:value-of select="text()"/>
78                                         </xsl:element>
79                                 </xsl:when>
80                         </xsl:choose>
81                 </xsl:element>
82         </xsl:template>
83
84         <xsl:template match="smbconfblock/smbconfcomment">
85                 <xsl:element name="member">
86                         <xsl:text># </xsl:text>
87                         <xsl:apply-templates/>
88                 </xsl:element>
89         </xsl:template>
90
91         <xsl:template match="smbconfblock/smbconfsection">
92                 <xsl:element name="member">
93                         <xsl:text> </xsl:text>
94                 </xsl:element>
95                 <xsl:element name="member">
96                         <xsl:element name="parameter">
97                                 <xsl:value-of select="@name"/>
98                         </xsl:element>
99                 </xsl:element>
100         </xsl:template>
101
102         <xsl:template match="smbconfoption">
103                 <xsl:call-template name="smbconfoption">
104                         <xsl:with-param name="name" select="@name"/>
105                         <xsl:with-param name="content"><xsl:copy-of select="text()"/></xsl:with-param>
106                 </xsl:call-template>
107         </xsl:template>
108
109
110         <xsl:template match="smbconfblock">
111                 <xsl:element name="simplelist">
112                         <xsl:apply-templates/>
113                 </xsl:element>
114         </xsl:template>
115
116         <xsl:template match="smbconfsection">
117                 <xsl:element name="parameter">
118                         <xsl:value-of select="@name"/>
119                 </xsl:element>
120         </xsl:template>
121
122         <xsl:template match="imagefile">
123                 <xsl:element name="mediaobject">
124                         <xsl:element name="imageobject">
125                                 <xsl:attribute name="role"><xsl:text>html</xsl:text></xsl:attribute>
126                                 <xsl:element name="imagedata">
127                                         <xsl:attribute name="fileref">
128                                                 <xsl:text>images/</xsl:text><xsl:value-of select="text()"/><xsl:text>.png</xsl:text></xsl:attribute>
129                                         <xsl:attribute name="scale">
130                                                 <xsl:choose>
131                                                         <xsl:when test="@scale != ''">
132                                                                 <xsl:value-of select="@scale"/>
133                                                         </xsl:when>
134
135                                                         <xsl:otherwise>
136                                                                 <xsl:text>100</xsl:text>
137                                                         </xsl:otherwise>
138                                                 </xsl:choose>
139                                         </xsl:attribute>
140                                         <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
141                                 </xsl:element>
142                         </xsl:element>
143                         <xsl:element name="imageobject">
144                                 <xsl:element name="imagedata">
145                                         <xsl:attribute name="fileref">
146                                                 <xsl:text>images/</xsl:text><xsl:value-of select="text()"/><xsl:text>.png</xsl:text></xsl:attribute>
147                                         <xsl:attribute name="scale">
148                                                 <xsl:choose>
149                                                         <xsl:when test="@scale != ''">
150                                                                 <xsl:value-of select="@scale"/>
151                                                         </xsl:when>
152
153                                                         <xsl:otherwise>
154                                                                 <xsl:text>50</xsl:text>
155                                                         </xsl:otherwise>
156                                                 </xsl:choose>
157                                         </xsl:attribute>
158                                         <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
159                                 </xsl:element>
160                         </xsl:element>
161                         <xsl:element name="imageobject">
162                                 <xsl:attribute name="role"><xsl:text>latex</xsl:text></xsl:attribute>
163                                 <xsl:element name="imagedata">
164                                         <xsl:attribute name="fileref">
165                                                 <xsl:value-of select="$latex.imagebasedir"/><xsl:text>images/</xsl:text><xsl:value-of select="text()"/></xsl:attribute>
166                                 </xsl:element>
167                         </xsl:element>
168
169                 </xsl:element>
170         </xsl:template>
171
172 </xsl:stylesheet>