source: doc/user-guide/help.xsl @ d5bd9c0

Last change on this file since d5bd9c0 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: 5.5 KB
Line 
1<?xml version='1.0'?>
2<!--
3        Convert DocBook documentation to help.txt file used by bitlbee
4        (C) 2004 Jelmer Vernooij
5-->
6<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7        version="1.1">
8
9        <xsl:output method="text" encoding="utf-8" standalone="yes"/>
10        <xsl:strip-space elements="*"/>
11
12        <xsl:template match="text()">
13                <xsl:if test="starts-with(.,' ') and preceding-sibling::* and
14                        not(preceding-sibling::*[1]/node()[1][self::text() and contains(concat(.,'^$%'),' ^$%')])">
15                        <xsl:text> </xsl:text>
16                </xsl:if>
17       
18                <xsl:value-of select="normalize-space(.)"/>
19                <xsl:if test="contains(concat(.,'^$%'),' ^$%') and following-sibling::* and
20                        not(following-sibling::*[1]/node()[1][self::text() and starts-with(.,' ')])">
21                        <xsl:text> </xsl:text>
22                </xsl:if>
23        </xsl:template>
24
25        <xsl:template match="para">
26                <xsl:apply-templates/><xsl:text>&#10;</xsl:text>
27                <xsl:if test="$extraparanewline = '1'">
28                        <xsl:text>&#10;</xsl:text>
29                </xsl:if>
30        </xsl:template>
31
32        <xsl:template name="subject">
33                <xsl:param name="id"/>
34                <xsl:message><xsl:text>Processing: </xsl:text><xsl:value-of select="$id"/></xsl:message>
35                <xsl:text>?</xsl:text><xsl:value-of select="$id"/><xsl:text>&#10;</xsl:text>
36
37                <xsl:for-each select="para|variablelist|simplelist|command-list|ircexample">
38                        <xsl:if test="title != ''">
39                                <xsl:value-of select="title"/><xsl:text>&#10;</xsl:text>
40                        </xsl:if>
41                        <xsl:apply-templates select="."/>
42                </xsl:for-each>
43                <xsl:text>%&#10;</xsl:text>
44
45                <xsl:for-each select="sect1|sect2">
46                        <xsl:call-template name="subject">
47                                <xsl:with-param name="id" select="@id"/>
48                        </xsl:call-template>
49                </xsl:for-each>
50
51                <xsl:for-each select="bitlbee-command">
52                        <xsl:call-template name="cmd">
53                                <xsl:with-param name="prefix" select="''"/>
54                        </xsl:call-template>
55                </xsl:for-each>
56
57                <xsl:for-each select="bitlbee-setting">
58                        <xsl:message><xsl:text>Processing setting '</xsl:text><xsl:value-of select="@name"/><xsl:text>'</xsl:text></xsl:message>
59                        <xsl:text>?set </xsl:text><xsl:value-of select="@name"/><xsl:text>&#10;</xsl:text>
60                        <xsl:text>_b_Type:_b_ </xsl:text><xsl:value-of select="@type"/><xsl:text>&#10;</xsl:text>
61                        <xsl:text>_b_Scope:_b_ </xsl:text><xsl:value-of select="@scope"/><xsl:text>&#10;</xsl:text>
62                        <xsl:if test="default">
63                                <xsl:text>_b_Default:_b_ </xsl:text><xsl:value-of select="default"/><xsl:text>&#10;</xsl:text>
64                        </xsl:if>
65                        <xsl:if test="possible-values">
66                                <xsl:text>_b_Possible Values:_b_ </xsl:text><xsl:value-of select="possible-values"/><xsl:text>&#10;</xsl:text>
67                        </xsl:if>
68                        <xsl:text>&#10;</xsl:text>
69                        <xsl:apply-templates select="description"/>
70                        <xsl:text>%&#10;</xsl:text>
71                </xsl:for-each>
72        </xsl:template>
73
74        <xsl:template match="command-list">
75                <xsl:for-each select="../bitlbee-command">
76                        <xsl:text> * _b_</xsl:text><xsl:value-of select="@name"/><xsl:text>_b_ - </xsl:text><xsl:value-of select="short-description"/><xsl:text>&#10;</xsl:text>
77                </xsl:for-each>
78                <xsl:text>&#10;</xsl:text>
79        </xsl:template>
80
81        <xsl:template match="preface|chapter|sect1|sect2">
82                <xsl:call-template name="subject">
83                        <xsl:with-param name="id" select="@id"/>
84                </xsl:call-template>
85        </xsl:template>
86
87        <xsl:template match="emphasis">
88                <xsl:text>_b_</xsl:text>
89                <xsl:apply-templates/>
90                <xsl:text>_b_</xsl:text>
91        </xsl:template>
92
93        <xsl:template match="book">
94                <xsl:apply-templates/>
95        </xsl:template>
96
97        <xsl:template match="variablelist">
98                <xsl:for-each select="varlistentry">
99                        <xsl:text> _b_</xsl:text><xsl:value-of select="term"/><xsl:text>_b_ - </xsl:text><xsl:value-of select="listitem/para"/><xsl:text>&#10;</xsl:text>
100                </xsl:for-each>
101                <xsl:text>&#10;</xsl:text>
102        </xsl:template>
103
104        <xsl:template match="simplelist">
105                <xsl:for-each select="member">
106                        <xsl:text> - </xsl:text><xsl:apply-templates/><xsl:text>&#10;</xsl:text>
107                </xsl:for-each>
108                <xsl:text>&#10;</xsl:text>
109        </xsl:template>
110
111        <xsl:template match="ircline">
112                <xsl:text>_b_&lt;</xsl:text><xsl:value-of select="@nick"/><xsl:text>&gt;_b_ </xsl:text><xsl:value-of select="."/><xsl:text>&#10;</xsl:text>
113        </xsl:template>
114
115        <xsl:template match="ircaction">
116                <xsl:text>_b_* </xsl:text><xsl:value-of select="@nick"/><xsl:text>_b_ </xsl:text><xsl:value-of select="."/><xsl:text>&#10;</xsl:text>
117        </xsl:template>
118
119        <xsl:template match="ircexample">
120                <xsl:apply-templates/>
121                <xsl:text>&#10;</xsl:text>
122        </xsl:template>
123
124        <xsl:template name="cmd">
125                <xsl:param name="prefix"/>
126                <xsl:variable name="thiscmd"><xsl:value-of select="$prefix"/><xsl:value-of select="@name"/></xsl:variable>
127                <xsl:message><xsl:text>Processing command '</xsl:text><xsl:value-of select="$thiscmd"/><xsl:text>'</xsl:text></xsl:message>
128                <xsl:text>?</xsl:text><xsl:value-of select="$thiscmd"/><xsl:text>&#10;</xsl:text>
129                <xsl:for-each select="syntax">
130                        <xsl:text>_b_Syntax:_b_ </xsl:text><xsl:value-of select="."/><xsl:text>&#10;</xsl:text>
131                </xsl:for-each>
132                <xsl:text>&#10;</xsl:text>
133
134                <xsl:apply-templates select="description"/>
135
136                <xsl:for-each select="ircexample">
137                        <xsl:text>_b_Example:_b_&#10;</xsl:text>
138                        <xsl:apply-templates select="."/>
139                </xsl:for-each>
140
141                <!--
142                <xsl:if test="bitlbee-command != ''">
143                        <xsl:text>Subcommands: </xsl:text>
144                        <xsl:for-each select="bitlbee-command">
145                                <xsl:value-of select="@name"/><xsl:text>, </xsl:text>
146                        </xsl:for-each>
147                        <xsl:text>&#10;</xsl:text>
148                </xsl:if>
149                -->
150
151                <xsl:text>%&#10;</xsl:text>
152
153                <xsl:for-each select="bitlbee-command">
154                        <xsl:call-template name="cmd">
155                                <xsl:with-param name="prefix"><xsl:value-of select="$thiscmd"/><xsl:text> </xsl:text></xsl:with-param>
156                        </xsl:call-template>
157                </xsl:for-each>
158
159        </xsl:template>
160
161</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.