common.xsl revision 66e48875fca2df6669dab4f2690ee36c6913c0ff
6fbd2e53c97ea6976d93e0ac521adabc55e0fb73nd Copyright 2002-2004 The Apache Software Foundation
beaad6ac31022179c44d88536811e9ccd9425696nd Licensed under the Apache License, Version 2.0 (the "License");
beaad6ac31022179c44d88536811e9ccd9425696nd you may not use this file except in compliance with the License.
beaad6ac31022179c44d88536811e9ccd9425696nd You may obtain a copy of the License at
beaad6ac31022179c44d88536811e9ccd9425696nd Unless required by applicable law or agreed to in writing, software
beaad6ac31022179c44d88536811e9ccd9425696nd distributed under the License is distributed on an "AS IS" BASIS,
beaad6ac31022179c44d88536811e9ccd9425696nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
beaad6ac31022179c44d88536811e9ccd9425696nd See the License for the specific language governing permissions and
beaad6ac31022179c44d88536811e9ccd9425696nd limitations under the License.
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Please, don't hard-code output strings! Use the language -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- files and the translation "stuff"... -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Injected variables: -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- $is-chm - (boolean) target is for CHM generation or not -->
e5343521634b71f10f0e88374d88bd5a45f75f68nd<!-- $is-zip - (boolean) target is for ZIP generation or not -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- $message - (node-set) localized common text snippets -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- $doclang - (string) document language -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- $output-encoding - (string) MIME charset name of the output -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- encoding -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Constants used for case translation -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- space separated list of blockelements defined in common.dtd -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- used for inline content catching in <example>s -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd p example note table ul ol dl pre img blockquote
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- relative path to /manual/ -->
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end<xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- load outsourced page types -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- load utility snippets -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- make sure, we set relative anchors only, if we're actually -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- transforming a modulefile (see <directive> template) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="in-modulesynopsis" select="boolean(/modulesynopsis)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- when referencing to a directory, we may need to complete the path -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- with the index file (for offline applications like *.chm files) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- it may be desired to open external targets in a new window -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="ext-target" select="boolean($is-chm)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- #################################################################### -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Utility templates for constructing pages -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- #################################################################### -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- HTML head -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- the meta element is necessary for offline handling like CHM -->
bdbf46e4950b6f633073f803486962e82c2f086and content="text/html; charset={$output-encoding}" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>This file is generated from xml source: DO NOT EDIT</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='apachetitle'])"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </title>&lf;
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- chm files get a slightly different stylesheet -->
bdbf46e4950b6f633073f803486962e82c2f086and href="{$path}/style/css/manual-chm.css" />
e5343521634b71f10f0e88374d88bd5a45f75f68nd <!-- zip packages do also -->
e5343521634b71f10f0e88374d88bd5a45f75f68nd <link title="Main stylesheet" type="text/css" media="all"
e5343521634b71f10f0e88374d88bd5a45f75f68nd rel="stylesheet"
e5343521634b71f10f0e88374d88bd5a45f75f68nd href="{$path}/style/css/manual-zip.css" />&lf;
e5343521634b71f10f0e88374d88bd5a45f75f68nd <link title="No Sidebar - Default font size" type="text/css" media="all"
e5343521634b71f10f0e88374d88bd5a45f75f68nd rel="alternate stylesheet"
e5343521634b71f10f0e88374d88bd5a45f75f68nd href="{$path}/style/css/manual-zip-100pc.css"/>
bdbf46e4950b6f633073f803486962e82c2f086and <link title="Main stylesheet" type="text/css" media="all"
bdbf46e4950b6f633073f803486962e82c2f086and rel="stylesheet"
7e68fce3cbd2246164e045a51ecd77f9f26680ednd href="{$path}/style/css/manual.css" />&lf;
bdbf46e4950b6f633073f803486962e82c2f086and <link title="No Sidebar - Default font size" type="text/css" media="all"
bdbf46e4950b6f633073f803486962e82c2f086and rel="alternate stylesheet"
bdbf46e4950b6f633073f803486962e82c2f086and href="{$path}/style/css/manual-loose-100pc.css"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd rel="stylesheet"
7e68fce3cbd2246164e045a51ecd77f9f26680ednd href="{$path}/style/css/manual-print.css"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- chm files do not need a favicon -->
bdbf46e4950b6f633073f803486962e82c2f086and <link rel="shortcut icon" href="{$path}/images/favicon.ico" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /head -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- page top -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd [@id='apachehttpserver'])"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="uri" select="parentdocument/@href" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <img src="{$path}/images/left.gif" alt="<-" title="<-" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="/modulesynopsis or /directiveindex or /quickreference">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="uri" select="parentdocument/@href"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /top -->
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end<!-- ==================================================================== -->
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end<!-- out of date -->
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:if test="$metafile/variants/variant[.=$doclang]/@outdated = 'yes'">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- page bottom -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
21041d71aa640dca78abab65ea293171b668bc20nd <xsl:text>Copyright 1999-2004 The Apache Software </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /bottom -->
8cfbcde8e416fd60132dd4324c42a5098da156cfnd<!-- ==================================================================== -->
8cfbcde8e416fd60132dd4324c42a5098da156cfnd<!-- build an "available languages" section -->
8cfbcde8e416fd60132dd4324c42a5098da156cfnd<!-- ==================================================================== -->
99e4eb246ec234156eb878835d4e1b4e2f48c499nd <a href="{$path}/{.}{$metafile/path}{$metafile/basename}.html">
8cfbcde8e416fd60132dd4324c42a5098da156cfnd select="concat($path, '/', ., $metafile/path)" />
c804424d87da28b21a0eece7e377a4075c7784ednd <xsl:when test=". != 'fr'"> <!-- no language file avail. -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd [@id='nativename']" />
8cfbcde8e416fd60132dd4324c42a5098da156cfnd<!-- /langavail -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Process a documentation section -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- Section heading -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- Section body -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /section -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- handle subsections (lower level headings) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Section heading -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Section body -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- handle subsubsections (h4) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Section heading -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Section body -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- section nesting > h4 is not supported for now -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>FATAL: exceeding maximum section nesting level.</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>Perhaps you should consider to split your document into</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- (sub)section titles -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- generate section index -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /section index -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- docs super menu -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /super-menu -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <example> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- iterate over *all* nodes; bare text and other inline stuff is -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- wrapped into <p><code>, block level elements (defined in -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- $blockelements) are applied "as is" -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="concat(' ', normalize-space($blockelements), ' ')" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="boolean(contains($blocks,
7e68fce3cbd2246164e045a51ecd77f9f26680ednd concat(' ', local-name(), ' ')))"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- bb = (number of) blocks nodes before (the current) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="count(preceding-sibling::*[
7e68fce3cbd2246164e045a51ecd77f9f26680ednd contains($blocks,
7e68fce3cbd2246164e045a51ecd77f9f26680ednd concat(' ', local-name(), ' '))])" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- phew. short explanation, what happens here: -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- We want to get the inline stuff between the last -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- block node and the current node. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- So filter all previous nodes for the condition -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- that the number of block nodes of all of *their* -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- previous nodes is >= $bb. Hope that helps ;-) -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="preceding-sibling::node()[
7e68fce3cbd2246164e045a51ecd77f9f26680ednd count(preceding-sibling::*[
7e68fce3cbd2246164e045a51ecd77f9f26680ednd contains($blocks,
7e68fce3cbd2246164e045a51ecd77f9f26680ednd concat(' ', local-name(), ' '))])
7e68fce3cbd2246164e045a51ecd77f9f26680ednd >= $bb]" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="self::node()[not($is-block-node)]" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- apply bare text only, if it's not only \s or empty -->
b09970a14a3280b9e4e449dea6e53968fc206731nd <!-- same as $content above. xsl:copy-of seems to make -->
b09970a14a3280b9e4e449dea6e53968fc206731nd <!-- thread problems with xalan-j ... -->
b09970a14a3280b9e4e449dea6e53968fc206731nd select="preceding-sibling::node()[
b09970a14a3280b9e4e449dea6e53968fc206731nd count(preceding-sibling::*[
b09970a14a3280b9e4e449dea6e53968fc206731nd contains($blocks,
b09970a14a3280b9e4e449dea6e53968fc206731nd concat(' ', local-name(),
b09970a14a3280b9e4e449dea6e53968fc206731nd >= $bb]" />
b09970a14a3280b9e4e449dea6e53968fc206731nd select="self::node()[not($is-block-node)]" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:apply-templates select="self::node()[$is-block-node]" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- /node() -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /example -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- indentations -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /indent -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <note> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /note -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <note><title> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <directive> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Inserts link to another directive, which might be in another module. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- References are converted into lower case. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="translate(., $uppercase, $lowercase)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:when test="$in-modulesynopsis and @module = /modulesynopsis/name">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /directive -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <module> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Inserts a link to refereed module -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /module -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <related> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$message[@id='relateddirectives']" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /related -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <table> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- existing border attribute will result in <table class="bordered"> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- style="zebra": alternating colors per row, i.e. every second row -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- gets a class="odd". Header lines (no <td>) get a -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- class="header". These lines will be excluded from -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- the "odd" line count. That way header lines act -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- interjectional, which creates a better visual and -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- psychological effect. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd test="position() mod 2 =
7ea4d977a504317487dde02009cf68ae1117ecfend (count(preceding-sibling::tr[count(td) = 0]) mod 2)">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /table -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <ol> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- A. B. C. D. (list-style-type="upper-alpha") -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /ol -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- diverse elements -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Passes through content -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="summary|description|usage|syntax|default">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /diverse -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <a> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /a -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- toplink -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <a href="#page-header"><img src="{$path}/images/up.gif" alt="top" /></a>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /toplink -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- <transnote> -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- translator's notes are displayed in a different color -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /transnote -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Filter   in text() nodes. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- In some environments this character won't be transformed correctly, -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- so we just write it explicitely as " " into the output. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="substring-before($text, ' ')" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="text" select="substring-after($text, ' ')" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Process everything else by just passing it through -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>Is the document valid (try `build validate-xml`)?</xsl:text>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="tr"><tr><xsl:apply-templates select="*|@*|text()" /></tr></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="th"><th><xsl:apply-templates select="*|@*|text()" /></th></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="td"><td><xsl:apply-templates select="*|@*|text()" /></td></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="p"><p><xsl:apply-templates select="*|@*|text()" /></p></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="ul"><ul><xsl:apply-templates select="*|@*|text()" /></ul></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="li"><li><xsl:apply-templates select="*|@*|text()" /></li></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="dl"><dl><xsl:apply-templates select="*|@*|text()" /></dl></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="dt"><dt><xsl:apply-templates select="*|@*|text()" /></dt></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="dd"><dd><xsl:apply-templates select="*|@*|text()" /></dd></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="em"><em><xsl:apply-templates select="*|@*|text()" /></em></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="strong"><strong><xsl:apply-templates select="*|@*|text()" /></strong></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="pre"><pre><xsl:apply-templates select="*|@*|text()" /></pre></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="code"><code><xsl:apply-templates select="*|@*|text()" /></code></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="var"><var><xsl:apply-templates select="*|@*|text()" /></var></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="dfn"><dfn><xsl:apply-templates select="*|@*|text()" /></dfn></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="blockquote"><blockquote><xsl:apply-templates select="*|@*|text()" /></blockquote></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="q"><q><xsl:apply-templates select="*|@*|text()" /></q></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="cite"><cite><xsl:apply-templates select="*|@*|text()" /></cite></xsl:template>
ab3f278fbf670b521b2e7fd6fe93732059e2bf24nd<xsl:template match="img"><img><xsl:apply-templates select="*|@*|text()" /></img></xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /pass through -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- create a letter bar -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="letters" select="substring($letters, 2)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /letter-bar -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- template(s) for collecting all start letters of directives -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd select="translate(substring(normalize-space(name), 1, 1),
7e68fce3cbd2246164e045a51ecd77f9f26680ednd $lowercase, $uppercase)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /directive-startletters -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- squeeze subsequent letters in a string -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="current" select="substring($letters, 1, 1)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="letters" select="substring($letters, 2)" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- /_squeeze-letters -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- fix href and target attribute of an element. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- lame is_absolute_uri test -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd and string-length(substring-before($uri, ':')) < 7">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="concat('#', substring-after($uri, '#'))"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="concat('#', substring-before($uri, '#'))"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="substring($absuri, string-length($uri), 1) = '/'">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="concat($absuri, $index-file, $fragment)"/>
04ff03c2d7e0ff45ee181eb1fa5bf7649ffcf6bfslive<!-- ==================================================================== -->
04ff03c2d7e0ff45ee181eb1fa5bf7649ffcf6bfslive<!-- Ignore table hints used for latex -->
04ff03c2d7e0ff45ee181eb1fa5bf7649ffcf6bfslive<!-- ==================================================================== -->