source: doc/user-guide/docbook.xsl @ 76b6521

Last change on this file since 76b6521 was 7740c4c, checked in by Jelmer Vernooij <jelmer@…>, at 2006-12-05T22:57:02Z

Fix xslt with newer (more pedantic) XSLT processors.

  • Property mode set to 100644
File size: 4.1 KB
Line 
1<?xml version='1.0'?>
2<!--
3        Convert BitlBee XML documentation to DocBook
4        (C) 2004 Jelmer Vernooij
5-->
6<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7        xmlns:exsl="http://exslt.org/common"
8        version="1.1"
9        extension-element-prefixes="exsl">
10
11        <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"/>
12
13        <xsl:strip-space elements="*"/>
14
15        <xsl:template match="ircline">
16                <xsl:element name="prompt"><xsl:text>&lt; </xsl:text><xsl:value-of select="@nick"/><xsl:text>&gt; </xsl:text></xsl:element>
17                <xsl:element name="userinput"><xsl:value-of select="normalize-space(.)"/></xsl:element><xsl:text>&#10;</xsl:text>
18        </xsl:template>
19
20        <xsl:template match="ircaction">
21                <xsl:text> * </xsl:text><xsl:value-of select="@nick"/><xsl:text> </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text>&#10;</xsl:text>
22        </xsl:template>
23
24        <xsl:template match="ircexample">
25                <xsl:element name="screen">
26                        <xsl:for-each select="ircline|ircaction">
27                                <xsl:apply-templates select="."/>
28                        </xsl:for-each>
29                </xsl:element>
30        </xsl:template>
31
32
33        <!-- This is needed to copy content unchanged -->
34        <xsl:template match="@*|node()">
35                <xsl:copy>
36                        <xsl:apply-templates select="@*|node()"/>
37                </xsl:copy>
38        </xsl:template>
39
40        <xsl:template name="subcmd-list">
41                <xsl:if test="bitlbee-command != ''">
42                        <xsl:element name="variablelist">
43                                <xsl:for-each select="bitlbee-command">
44                                        <xsl:element name="varlistentry">
45                                                <xsl:element name="term">
46                                                        <xsl:value-of select="@name"/>
47                                                </xsl:element>
48                                                <xsl:element name="listitem">
49                                                        <xsl:element name="para">
50                                                                <xsl:value-of select="short-description"/>
51                                                        </xsl:element>
52                                                </xsl:element>
53                                        </xsl:element>
54                                </xsl:for-each>
55                        </xsl:element>
56                </xsl:if>
57        </xsl:template>
58
59        <xsl:template match="command-list">
60                <xsl:call-template name="subcmd-list"/>
61        </xsl:template>
62
63        <xsl:template match="bitlbee-setting">
64                <xsl:element name="sect1">
65                        <xsl:attribute name="id">
66                                <xsl:text>set_</xsl:text>
67                                <xsl:value-of select="@name"/>
68                        </xsl:attribute>
69                        <xsl:element name="title"><xsl:value-of select="@name"/></xsl:element>
70
71                        <xsl:element name="simplelist">
72                                <xsl:element name="member">
73                                        <xsl:text>Type: </xsl:text><xsl:value-of select="@type"/>
74                                </xsl:element>
75                        </xsl:element>
76
77                        <xsl:for-each select="description/para">
78                                <xsl:apply-templates select="."/>
79                        </xsl:for-each>
80
81                </xsl:element>
82        </xsl:template>
83
84        <xsl:template name="cmd">
85                <xsl:param name="prefix"/>
86                <xsl:variable name="thiscmd"><xsl:value-of select="$prefix"/><xsl:value-of select="@name"/></xsl:variable>
87                <xsl:attribute name="id">
88                        <xsl:text>cmd_</xsl:text>
89                        <xsl:value-of select="translate($thiscmd,' ','_')"/>
90                </xsl:attribute>
91                <xsl:element name="title"><xsl:value-of select="$thiscmd"/>
92                        <xsl:if test="short-description">
93                                <xsl:text> - </xsl:text>
94                                <xsl:value-of select="short-description"/>
95                        </xsl:if>
96                </xsl:element>
97
98                <xsl:element name="formalpara">
99                        <xsl:element name="title"><xsl:text>Syntax:</xsl:text></xsl:element>
100                        <xsl:element name="para">
101                                <xsl:element name="programlisting">
102                                        <xsl:for-each select="syntax">
103                                                <xsl:value-of select="normalize-space(.)"/><xsl:text>&#10;</xsl:text>
104                                        </xsl:for-each>
105                                </xsl:element>
106                        </xsl:element>
107                </xsl:element>
108
109                <xsl:for-each select="description/para">
110                        <xsl:apply-templates select="."/>
111                </xsl:for-each>
112
113                <xsl:for-each select="ircexample">
114                        <xsl:apply-templates select="."/>
115                </xsl:for-each>
116
117                <!--<xsl:call-template name="subcmd-list"/>-->
118
119                <xsl:for-each select="bitlbee-command">
120                        <xsl:element name="sect2">
121                                <xsl:call-template name="cmd">
122                                        <xsl:with-param name="prefix"><xsl:value-of select="$thiscmd"/><xsl:text> </xsl:text>
123                                        </xsl:with-param>
124                                </xsl:call-template>
125                        </xsl:element>
126                </xsl:for-each>
127        </xsl:template>
128
129        <xsl:template match="bitlbee-command">
130                <xsl:element name="sect1">
131                        <xsl:call-template name="cmd">
132                                <xsl:with-param name="prefix" select="''"/>
133                        </xsl:call-template>
134                </xsl:element>
135        </xsl:template>
136
137        </xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.