Another set of updates; includes the new examples code and use of
[import/samba-docs-svnimport.git] / 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:import href="../settings.xsl"/>
13         <xsl:import href="strip-references.xsl"/>
14         <xsl:import href="expand-smbconfdoc.xsl"/>
15
16         <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"/>
17
18         <!-- This is needed to copy content unchanged -->
19         <xsl:template match="@*|node()">
20                 <xsl:copy>
21                         <xsl:apply-templates select="@*|node()"/>
22                 </xsl:copy>
23         </xsl:template>
24
25         <xsl:template match="smbconfblock/smbconfoption">
26
27                 <xsl:element name="member">
28                         <xsl:element name="indexterm">
29                                 <xsl:element name="primary">
30                                         <xsl:value-of select="@name"/>
31                                 </xsl:element>
32                         </xsl:element>
33                         <xsl:element name="parameter">
34                                 <xsl:value-of select="@name"/>
35                                 <xsl:choose>
36                                         <xsl:when test="text() != ''">
37                                                 <xsl:text> = </xsl:text>
38                                                 <xsl:value-of select="text()"/>
39                                         </xsl:when>
40                                 </xsl:choose>
41                         </xsl:element>
42                 </xsl:element>
43         </xsl:template>
44
45         <xsl:template match="smbconfblock/smbconfcomment">
46                 <xsl:element name="member">
47                         <xsl:text># </xsl:text>
48                         <xsl:apply-templates/>
49                 </xsl:element>
50         </xsl:template>
51
52         <xsl:template match="smbconfblock/smbconfsection">
53                 <xsl:element name="member">
54                         <xsl:text> </xsl:text>
55                 </xsl:element>
56                 <xsl:element name="member">
57                         <xsl:element name="parameter">
58                                 <xsl:value-of select="@name"/>
59                         </xsl:element>
60                 </xsl:element>
61         </xsl:template>
62
63         <xsl:template match="smbconfoption">
64                 <!-- Include an index term -->
65                 <xsl:element name="indexterm">
66                         <xsl:element name="primary">
67                                 <xsl:value-of select="@name"/>
68                         </xsl:element>
69                 </xsl:element>
70
71                 <xsl:variable name="linkcontent">
72                         <xsl:element name="parameter">
73                                 <xsl:attribute name="moreinfo">
74                                         <xsl:text>none</xsl:text>
75                                 </xsl:attribute>
76                                 <xsl:value-of select="@name"/>  
77                         </xsl:element>
78
79                         <xsl:choose>
80                                 <xsl:when test="text() != ''">
81                                         <xsl:text> = </xsl:text>
82                                         <xsl:value-of select="text()"/>
83                                 </xsl:when>
84                         </xsl:choose>
85                 </xsl:variable>
86
87                 <xsl:choose>
88                         <xsl:when test="$noreference = 1">
89                                 <xsl:value-of select="$linkcontent"/>
90                         </xsl:when>
91                         <xsl:otherwise>
92                                 <xsl:element name="link">
93                                         <xsl:attribute name="linkend">
94                                                 <xsl:value-of select="translate(translate(string(@name),' ',''),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
95                                         </xsl:attribute>
96                                         <xsl:value-of select="$linkcontent"/>
97                                 </xsl:element>
98                         </xsl:otherwise>
99                 </xsl:choose>
100         </xsl:template>
101
102         <xsl:template match="smbconfblock">
103                 <xsl:element name="simplelist">
104                         <xsl:apply-templates/>
105                 </xsl:element>
106         </xsl:template>
107
108         <xsl:template match="smbconfsection">
109                 <xsl:element name="parameter">
110                         <xsl:value-of select="@name"/>
111                 </xsl:element>
112         </xsl:template>
113
114         <xsl:template match="imagefile">
115                 <xsl:element name="mediaobject">
116                         <xsl:element name="imageobject">
117                                 <xsl:attribute name="role"><xsl:text>html</xsl:text></xsl:attribute>
118                                 <xsl:element name="imagedata">
119                                         <xsl:attribute name="fileref">
120                                                 <xsl:text>images/</xsl:text><xsl:value-of select="imagefile"/><xsl:text>.png</xsl:text></xsl:attribute>
121                                         <xsl:attribute name="scale">
122                                                 <xsl:choose>
123                                                         <xsl:when test="@scale != ''">
124                                                                 <xsl:value-of select="@scale"/>
125                                                         </xsl:when>
126
127                                                         <xsl:otherwise>
128                                                                 <xsl:text>100</xsl:text>
129                                                         </xsl:otherwise>
130                                                 </xsl:choose>
131                                         </xsl:attribute>
132                                         <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
133                                 </xsl:element>
134                         </xsl:element>
135                         <xsl:element name="imageobject">
136                                 <xsl:element name="imagedata">
137                                         <xsl:attribute name="fileref">
138                                                 <xsl:text>images/</xsl:text><xsl:value-of select="imagefile"/><xsl:text>.png</xsl:text></xsl:attribute>
139                                         <xsl:attribute name="scale">
140                                                 <xsl:choose>
141                                                         <xsl:when test="@scale != ''">
142                                                                 <xsl:value-of select="@scale"/>
143                                                         </xsl:when>
144
145                                                         <xsl:otherwise>
146                                                                 <xsl:text>50</xsl:text>
147                                                         </xsl:otherwise>
148                                                 </xsl:choose>
149                                         </xsl:attribute>
150                                         <xsl:attribute name="scalefit"><xsl:text>1</xsl:text></xsl:attribute>
151                                 </xsl:element>
152                         </xsl:element>
153                 </xsl:element>
154         </xsl:template>
155 </xsl:stylesheet>