1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/docs-xml/xslt/expand-smbconfdoc.xsl
2009-05-01 22:49:12 +02:00

192 lines
5.7 KiB
XML

<?xml version='1.0'?>
<!--
smb.conf-documentation specific stylesheets
Published under the GNU GPLv3 or later
(C) Jelmer Vernooij 2002-2004
(C) Alexander Bokovoy 2002-2004
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"
version="1.1">
<xsl:template match="description"><xsl:apply-templates/></xsl:template>
<xsl:template match="value"><xsl:element name="literal"><xsl:apply-templates/></xsl:element></xsl:template>
<xsl:template match="command"><xsl:element name="literal"><xsl:apply-templates/></xsl:element></xsl:template>
<xsl:template match="synonym"><xsl:apply-templates/></xsl:template>
<xsl:template match="related"><xsl:element name="para"><xsl:text>Related command</xsl:text><xsl:apply-templates/></xsl:element></xsl:template>
<xsl:template match="samba:parameterlist">
<xsl:apply-templates>
<xsl:sort select="samba:parameter/@name"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="value/comment">
<xsl:text>&#10;# </xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="samba:parameter">
<xsl:variable name="cname"><xsl:value-of select="translate(translate(string(@name),' ',''),
'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
</xsl:variable>
<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
<xsl:variable name="anchor">
<xsl:element name="anchor">
<xsl:attribute name="id">
<xsl:value-of select="$cname"/>
</xsl:attribute>
</xsl:element>
</xsl:variable>
<xsl:variable name="context">
<xsl:text> (</xsl:text>
<xsl:value-of select="@context"/>
<xsl:text>)</xsl:text>
</xsl:variable>
<xsl:variable name="term">
<xsl:copy-of select="$anchor"/>
<xsl:element name="title">
<xsl:text>&#10;</xsl:text>
<xsl:text>&#10;</xsl:text>
<xsl:value-of select="@name"/>
<xsl:value-of select="$context"/>
<xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:variable>
<!-- Generate list of examples -->
<xsl:variable name="examples">
<xsl:for-each select="value">
<xsl:if test="@type = 'example'">
<xsl:element name="para">
<xsl:text>Example: </xsl:text>
<xsl:element name="emphasis">
<xsl:element name="parameter">
<xsl:copy-of select="$name"/>
</xsl:element>
<xsl:text> = </xsl:text>
<xsl:apply-templates select="."/>
<xsl:text>&#10;</xsl:text>
</xsl:element>
<xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="tdefault">
<xsl:for-each select="value">
<xsl:if test="@type = 'default'">
<xsl:element name="para">
<xsl:text>Default: </xsl:text>
<xsl:element name="emphasis">
<xsl:element name="parameter">
<xsl:copy-of select="$name"/>
</xsl:element>
<xsl:text> = </xsl:text>
<xsl:apply-templates select="."/>
<xsl:text>&#10;</xsl:text>
</xsl:element>
<xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="default">
<xsl:choose>
<xsl:when test="$tdefault = ''">
<xsl:element name="para">
<xsl:element name="emphasis">
<xsl:text>No default</xsl:text>
</xsl:element>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$tdefault"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="content">
<xsl:apply-templates select="description"/>
</xsl:variable>
<xsl:for-each select="synonym">
<xsl:element name="section">
<xsl:element name="indexterm">
<xsl:attribute name="significance">
<xsl:text>preferred</xsl:text>
</xsl:attribute>
<xsl:element name="primary">
<xsl:value-of select="."/>
</xsl:element>
<xsl:element name="see">
<xsl:value-of select="$name"/>
</xsl:element>
</xsl:element>
<xsl:element name="title">
<xsl:text>&#10;</xsl:text>
<xsl:text>&#10;</xsl:text>
<xsl:element name="anchor">
<xsl:attribute name="id">
<xsl:value-of select="translate(translate(string(.),' ',''), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
</xsl:attribute>
</xsl:element>
<xsl:value-of select="."/>
<xsl:text>&#10;</xsl:text>
</xsl:element>
<xsl:element name="variablelist">
<xsl:element name="varlistentry">
<xsl:element name="listitem">
<xsl:element name="para">
<xsl:text>This parameter is a synonym for </xsl:text>
<xsl:element name="link">
<xsl:attribute name="linkend">
<xsl:value-of select="translate(translate(string($name),' ',''), 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
</xsl:attribute>
<xsl:value-of select="$name"/>
</xsl:element>
<xsl:text>.</xsl:text>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:for-each>
<xsl:element name="section">
<xsl:element name="indexterm">
<xsl:attribute name="significance">
<xsl:text>preferred</xsl:text>
</xsl:attribute>
<xsl:element name="primary">
<xsl:value-of select="@name"/>
</xsl:element>
</xsl:element>
<xsl:copy-of select="$term"/>
<xsl:element name="variablelist">
<xsl:element name="varlistentry">
<xsl:element name="listitem">
<xsl:copy-of select="$content"/> <xsl:text>&#10;</xsl:text>
<xsl:copy-of select="$default"/> <xsl:text>&#10;</xsl:text>
<xsl:copy-of select="$examples"/> <xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:text>&#10;</xsl:text>
</xsl:element>
</xsl:template>
</xsl:stylesheet>