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