1 <?xml version="1.0" encoding="US-ASCII"?>
2 <!--This file was created automatically by html2xhtml-->
3 <!--from the HTML stylesheets. Do not edit this file.-->
4 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt exsl" version="1.0">
6 <!-- ********************************************************************
8 ********************************************************************
10 This file is part of the XSL DocBook Stylesheet distribution.
11 See ../README or http://nwalsh.com/docbook/xsl/ for copyright
12 and other information.
14 ******************************************************************** -->
16 <lxslt:component prefix="xverb" functions="numberLines"/>
18 <xsl:template match="programlisting|screen|synopsis">
19 <xsl:param name="suppress-numbers" select="'0'"/>
20 <xsl:variable name="id">
21 <xsl:call-template name="object.id"/>
24 <xsl:call-template name="anchor"/>
26 <xsl:if test="$shade.verbatim != 0">
28 <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
29 <xsl:text>Use CSS instead,</xsl:text>
32 <xsl:text>for example: pre.</xsl:text>
33 <xsl:value-of select="local-name(.)"/>
34 <xsl:text> { background-color: #E0E0E0; }</xsl:text>
39 <xsl:when test="$suppress-numbers = '0' and @linenumbering = 'numbered' and $use.extensions != '0' and $linenumbering.extension != '0'">
40 <xsl:variable name="rtf">
41 <xsl:apply-templates/>
43 <pre class="{name(.)}">
44 <xsl:call-template name="number.rtf.lines">
45 <xsl:with-param name="rtf" select="$rtf"/>
50 <pre class="{name(.)}">
51 <xsl:apply-templates/>
57 <xsl:template match="literallayout">
58 <xsl:param name="suppress-numbers" select="'0'"/>
60 <xsl:variable name="rtf">
61 <xsl:apply-templates/>
64 <xsl:if test="$shade.verbatim != 0 and @class='monospaced'">
66 <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text>
67 <xsl:text>Use CSS instead,</xsl:text>
70 <xsl:text>for example: pre.</xsl:text>
71 <xsl:value-of select="local-name(.)"/>
72 <xsl:text> { background-color: #E0E0E0; }</xsl:text>
77 <xsl:when test="$suppress-numbers = '0' and @linenumbering = 'numbered' and $use.extensions != '0' and $linenumbering.extension != '0'">
79 <xsl:when test="@class='monospaced'">
80 <pre class="{name(.)}">
81 <xsl:call-template name="number.rtf.lines">
82 <xsl:with-param name="rtf" select="$rtf"/>
87 <div class="{name(.)}">
89 <xsl:call-template name="number.rtf.lines">
90 <xsl:with-param name="rtf" select="$rtf"/>
99 <xsl:when test="@class='monospaced'">
100 <pre class="{name(.)}">
101 <xsl:copy-of select="$rtf"/>
105 <div class="{name(.)}">
107 <xsl:call-template name="make-verbatim">
108 <xsl:with-param name="rtf" select="$rtf"/>
118 <xsl:template match="address">
119 <xsl:param name="suppress-numbers" select="'0'"/>
121 <xsl:variable name="rtf">
122 <xsl:apply-templates/>
126 <xsl:when test="$suppress-numbers = '0' and @linenumbering = 'numbered' and $use.extensions != '0' and $linenumbering.extension != '0'">
127 <div class="{name(.)}">
129 <xsl:call-template name="number.rtf.lines">
130 <xsl:with-param name="rtf" select="$rtf"/>
137 <div class="{name(.)}">
139 <xsl:call-template name="make-verbatim">
140 <xsl:with-param name="rtf" select="$rtf"/>
148 <xsl:template name="number.rtf.lines">
149 <xsl:param name="rtf" select="''"/>
150 <xsl:param name="pi.context" select="."/>
152 <!-- Save the global values -->
153 <xsl:variable name="global.linenumbering.everyNth" select="$linenumbering.everyNth"/>
155 <xsl:variable name="global.linenumbering.separator" select="$linenumbering.separator"/>
157 <xsl:variable name="global.linenumbering.width" select="$linenumbering.width"/>
159 <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
160 <xsl:variable name="pi.linenumbering.everyNth">
161 <xsl:call-template name="dbhtml-attribute">
162 <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
163 <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
167 <xsl:variable name="pi.linenumbering.separator">
168 <xsl:call-template name="dbhtml-attribute">
169 <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
170 <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
174 <xsl:variable name="pi.linenumbering.width">
175 <xsl:call-template name="dbhtml-attribute">
176 <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
177 <xsl:with-param name="attribute" select="'linenumbering.width'"/>
181 <!-- Construct the 'in-context' values -->
182 <xsl:variable name="linenumbering.everyNth">
184 <xsl:when test="$pi.linenumbering.everyNth != ''">
185 <xsl:value-of select="$pi.linenumbering.everyNth"/>
188 <xsl:value-of select="$global.linenumbering.everyNth"/>
193 <xsl:variable name="linenumbering.separator">
195 <xsl:when test="$pi.linenumbering.separator != ''">
196 <xsl:value-of select="$pi.linenumbering.separator"/>
199 <xsl:value-of select="$global.linenumbering.separator"/>
204 <xsl:variable name="linenumbering.width">
206 <xsl:when test="$pi.linenumbering.width != ''">
207 <xsl:value-of select="$pi.linenumbering.width"/>
210 <xsl:value-of select="$global.linenumbering.width"/>
215 <xsl:variable name="linenumbering.startinglinenumber">
217 <xsl:when test="@startinglinenumber">
218 <xsl:value-of select="@startinglinenumber"/>
220 <xsl:when test="@continuation='continues'">
221 <xsl:variable name="lastLine">
223 <xsl:when test="self::programlisting">
224 <xsl:call-template name="lastLineNumber">
225 <xsl:with-param name="listings" select="preceding::programlisting[@linenumbering='numbered']"/>
228 <xsl:when test="self::screen">
229 <xsl:call-template name="lastLineNumber">
230 <xsl:with-param name="listings" select="preceding::screen[@linenumbering='numbered']"/>
233 <xsl:when test="self::literallayout">
234 <xsl:call-template name="lastLineNumber">
235 <xsl:with-param name="listings" select="preceding::literallayout[@linenumbering='numbered']"/>
238 <xsl:when test="self::address">
239 <xsl:call-template name="lastLineNumber">
240 <xsl:with-param name="listings" select="preceding::address[@linenumbering='numbered']"/>
243 <xsl:when test="self::synopsis">
244 <xsl:call-template name="lastLineNumber">
245 <xsl:with-param name="listings" select="preceding::synopsis[@linenumbering='numbered']"/>
250 <xsl:text>Unexpected verbatim environment: </xsl:text>
251 <xsl:value-of select="local-name(.)"/>
253 <xsl:value-of select="0"/>
258 <xsl:value-of select="$lastLine + 1"/>
260 <xsl:otherwise>1</xsl:otherwise>
265 <xsl:when test="function-available('sverb:numberLines')">
266 <xsl:copy-of select="sverb:numberLines($rtf)"/>
268 <xsl:when test="function-available('xverb:numberLines')">
269 <xsl:copy-of select="xverb:numberLines($rtf)"/>
272 <xsl:message terminate="yes">
273 <xsl:text>No numberLines function available.</xsl:text>
279 <xsl:template name="make-verbatim">
280 <xsl:param name="rtf"/>
282 <!-- I want to make this RTF verbatim. There are two possibilities: either
283 I have access to the exsl:node-set extension function and I can "do it right"
284 or I have to rely on CSS. -->
287 <xsl:when test="function-available('exsl:node-set')">
288 <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/>
291 <span style="white-space: pre;">
292 <xsl:copy-of select="$rtf"/>
298 <!-- ======================================================================== -->
300 <xsl:template name="lastLineNumber">
301 <xsl:param name="listings"/>
302 <xsl:param name="number" select="0"/>
304 <xsl:variable name="lines">
305 <xsl:call-template name="countLines">
306 <xsl:with-param name="listing" select="string($listings[1])"/>
311 <xsl:when test="not($listings)">
312 <xsl:value-of select="$number"/>
314 <xsl:when test="$listings[1]/@startinglinenumber">
315 <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/>
317 <xsl:when test="$listings[1]/@continuation='continues'">
318 <xsl:call-template name="lastLineNumber">
319 <xsl:with-param name="listings" select="listings[position() > 1]"/>
320 <xsl:with-param name="number" select="$number + $lines"/>
324 <xsl:value-of select="$lines"/>
329 <xsl:template name="countLines">
330 <xsl:param name="listing"/>
331 <xsl:param name="count" select="1"/>
334 <xsl:when test="contains($listing, '
')">
335 <xsl:call-template name="countLines">
336 <xsl:with-param name="listing" select="substring-after($listing, '
')"/>
337 <xsl:with-param name="count" select="$count + 1"/>
341 <xsl:value-of select="$count"/>