common.xsl revision 7e68fce3cbd2246164e045a51ecd77f9f26680ed
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<?xml version="1.0"?><!--
3726777f47ac4bba3e21b075905959bbea47e72eerikabele/* ====================================================================
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * The Apache Software License, Version 1.1
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * Copyright (c) 2002-2003 The Apache Software Foundation. All rights
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * reserved.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * Redistribution and use in source and binary forms, with or without
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * modification, are permitted provided that the following conditions
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * are met:
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * 1. Redistributions of source code must retain the above copyright
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * notice, this list of conditions and the following disclaimer.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * 2. Redistributions in binary form must reproduce the above copyright
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * notice, this list of conditions and the following disclaimer in
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * the documentation and/or other materials provided with the
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * distribution.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * 3. The end-user documentation included with the redistribution,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * if any, must include the following acknowledgment:
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * "This product includes software developed by the
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * Apache Software Foundation (http://www.apache.org/)."
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * Alternately, this acknowledgment may appear in the software itself,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * if and wherever such third-party acknowledgments normally appear.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * 4. The names "Apache" and "Apache Software Foundation" must
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * not be used to endorse or promote products derived from this
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * software without prior written permission. For written
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * permission, please contact apache@apache.org.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * 5. Products derived from this software may not be called "Apache",
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * nor may "Apache" appear in their name, without prior written
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * permission of the Apache Software Foundation.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele *
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1fb92290c22cf761b7219074d75cde2016050ed1slive * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43a46e566e58e888c7889448cabd3dcf1f4b9fbend * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43a46e566e58e888c7889448cabd3dcf1f4b9fbend * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
43a46e566e58e888c7889448cabd3dcf1f4b9fbend * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43a46e566e58e888c7889448cabd3dcf1f4b9fbend * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd * SUCH DAMAGE.
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd * ====================================================================
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd *
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd * This software consists of voluntary contributions made by many
43a46e566e58e888c7889448cabd3dcf1f4b9fbend * individuals on behalf of the Apache Software Foundation. For more
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * information on the Apache Software Foundation, please see
3726777f47ac4bba3e21b075905959bbea47e72eerikabele * <http://www.apache.org/>.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele */ -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!DOCTYPE xsl:stylesheet [
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!ENTITY nbsp SYSTEM "util/nbsp.xml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!ENTITY lf SYSTEM "util/lf.xml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele]>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:stylesheet version="1.0"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele xmlns="http://www.w3.org/1999/xhtml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Please, don't hard-code output strings! Use the language -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- files and the translation "stuff"... -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Injected variables: -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- $is-chm - (boolean) target is for CHM generation or not -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- $messages - (node-set) localized common text snippets -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- $output-encoding - (string) MIME charset name of the output -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- encoding -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Constants used for case translation -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- space separated list of blockelements defined in common.dtd -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- used for inline content catching in <example>s -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="blockelements">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele p example note table ul ol dl pre img blockquote
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:variable>
eed750bc8c60b3057bf2f39a60866796260ee594slive
eed750bc8c60b3057bf2f39a60866796260ee594slive<!-- relative path to /manual/ -->
a6d007137e5f9daa1b188752a35b2146065e69bfslive<xsl:variable name="path" select="document(/*/@metafile)/metafile/relpath" />
a6d007137e5f9daa1b188752a35b2146065e69bfslive
a6d007137e5f9daa1b188752a35b2146065e69bfslive<!-- load outsourced page types -->
7884a25869c5f99d815f7e2e9e42562ec532275dnd<xsl:include href="moduleindex.xsl" />
7884a25869c5f99d815f7e2e9e42562ec532275dnd<xsl:include href="directiveindex.xsl" />
7884a25869c5f99d815f7e2e9e42562ec532275dnd<xsl:include href="manualpage.xsl" />
a6d007137e5f9daa1b188752a35b2146065e69bfslive<xsl:include href="synopsis.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="sitemap.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="indexpage.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="quickreference.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="faq.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- load utility snippets -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="util/modtrans.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- make sure, we set relative anchors only, if we're actually -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- transforming a modulefile (see <directive> template) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="in-modulesynopsis" select="boolean(/modulesynopsis)" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- when referencing to a directory, we may need to complete the path -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- with the index file (for offline applications like *.chm files) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="index-file">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$is-chm">index.html</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:variable>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- it may be desired to open external targets in a new window -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="ext-target" select="boolean($is-chm)" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- #################################################################### -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- Utility templates for constructing pages -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- #################################################################### -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- HTML head -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="head">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<head>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- the meta element is necessary for offline handling like CHM -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="$is-chm">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <meta http-equiv="Content-Type"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele content="text/html; charset={$output-encoding}" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:comment>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>This file is generated from xml source: DO NOT EDIT</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
fc56d0d97412cd0421430f3e415c9b19be97e101nd <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:comment>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>&lf;
e3abd665031c6050eb0483d28f2d243d720b3f85slive
e3abd665031c6050eb0483d28f2d243d720b3f85slive <title>
e3abd665031c6050eb0483d28f2d243d720b3f85slive <xsl:choose>
e3abd665031c6050eb0483d28f2d243d720b3f85slive <xsl:when test="name">
e3abd665031c6050eb0483d28f2d243d720b3f85slive <xsl:value-of select="name"/>
e3abd665031c6050eb0483d28f2d243d720b3f85slive </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="title"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='apachetitle']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </title>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- chm files get a slightly different stylesheet -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="$is-chm">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <link type="text/css" rel="stylesheet" media="all"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd href="{$path}/style/css/manual-chm.css" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link title="Main stylesheet" type="text/css" media="all"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele rel="stylesheet"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele href="{$path}/style/css/manual.css" />&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link title="No Sidebar - Default font size" type="text/css" media="all"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele rel="alternate stylesheet"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele href="{$path}/style/css/manual-loose-100pc.css"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link type="text/css" media="print"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele rel="stylesheet"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele href="{$path}/style/css/manual-print.css"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- chm files do not need a favicon -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="not($is-chm)">&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link rel="shortcut icon" href="{$path}/images/favicon.ico" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</head>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /head -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- page top -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="top">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div id="page-header">&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="super-menu" />&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <p class="apache">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='apachehttpserver']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </p>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <img src="{$path}/images/feather.gif" alt="" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div>&lf; <!-- /page-header -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="up">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="./{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="parentdocument">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="href">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="parentdocument/@href"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="helper.uri.fix">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:with-param name="uri" select="parentdocument/@href" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:call-template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <img src="{$path}/images/left.gif" alt="&lt;-" title="&lt;-" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div id="path">&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="http://www.apache.org/">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$ext-target">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="target">_blank</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='apache']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> &gt; </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="http://httpd.apache.org/">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="$ext-target">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:attribute name="target">_blank</xsl:attribute>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$messages/message[@name='http-server']" />
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text> &gt; </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="http://httpd.apache.org/docs-project/">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="$ext-target">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:attribute name="target">_blank</xsl:attribute>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$messages/message[@name='documentation']" />
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="not(/indexpage)">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text> &gt; </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="{$path}/{$index-file}">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$messages/message[@name='version']"/>
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="/modulesynopsis or /directiveindex or /quickreference">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text> &gt; </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="./{$index-file}">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$messages/message[@name='modules']"/>
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="parentdocument/text()">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text> &gt; </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="{parentdocument/@href}">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:call-template name="helper.uri.fix">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:with-param name="uri" select="parentdocument/@href"/>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:call-template>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="parentdocument"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /path -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /top -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- page bottom -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="bottom">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div id="footer">&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <p class="apache">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='maintainedby']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="http://httpd.apache.org/docs-project/">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$ext-target">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="target">_blank</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>Apache HTTP Server Documentation Project</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </p>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="super-menu"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /footer -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /bottom -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Process a documentation section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:call-template name="toplink" />&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="section">&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- Section heading -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <h2>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a id="{@id}" name="{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </h2>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- Section body -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /.section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- handle subsections (lower level headings) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section heading -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a id="{@id}" name="{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section body -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- handle subsubsections (h4) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/section/section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section heading -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h4>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a id="{@id}" name="{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h4>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section body -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section/section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- section nesting > h4 is not supported for now -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/section/section/section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:message terminate="yes">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>FATAL: exceeding maximum section nesting level.</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>Perhaps you should consider to split your document into</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>several ones...</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:message>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section/section/section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- (sub)section titles -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/title" mode="print">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/title" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/title -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- generate section index -->
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<!-- ==================================================================== -->
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<xsl:template match="section" mode="index">
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<li>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <img src="{$path}/images/down.gif" alt="" />
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <xsl:text> </xsl:text>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <xsl:choose>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <xsl:when test="@id">
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <a href="#{@id}">
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <xsl:apply-templates select="title" mode="print" />
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd </a>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</li>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- /section index -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- docs super menu -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<xsl:template name="super-menu">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<p class="menu">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='modules']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/directives.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='directives']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/faq/{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='faq']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/glossary.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='glossary']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/sitemap.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='sitemap']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
43a46e566e58e888c7889448cabd3dcf1f4b9fbend</p>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /super-menu -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <example> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- iterate over *all* nodes; bare text and other inline stuff is -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- wrapped into <p><code>, block level elements (defined in -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- $blockelements) are applied "as is" -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- ==================================================================== -->
3c56725151a46fef84ce376d709b5339da28e10fnd<xsl:variable name="blocks"
3c56725151a46fef84ce376d709b5339da28e10fnd select="concat(' ', normalize-space($blockelements), ' ')" />
3c56725151a46fef84ce376d709b5339da28e10fnd
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="example">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:for-each select="/node()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="is-block-node"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="boolean(contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(), ' ')))"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- bb = (number of) blocks nodes before (the current) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="bb"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="count(preceding-sibling::*[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(), ' '))])" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$is-block-node or position()=last()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="content">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- phew. short explanation, what happens here: -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- We want to get the inline stuff between the last -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- block node and the current node. -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- So filter all previous nodes for the condition -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- that the number of block nodes of all of *their* -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- previous nodes is >= $bb. Hope that helps ;-) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="preceding-sibling::node()[
3c56725151a46fef84ce376d709b5339da28e10fnd count(preceding-sibling::*[
3c56725151a46fef84ce376d709b5339da28e10fnd contains($blocks,
3c56725151a46fef84ce376d709b5339da28e10fnd concat(' ', local-name(), ' '))])
3c56725151a46fef84ce376d709b5339da28e10fnd &gt;= $bb]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:apply-templates
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="self::node()[not($is-block-node)]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:variable>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- apply bare text only, if it's not only \s or empty -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="not(normalize-space($content) = '')">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <p><code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:copy-of select="$content" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </code></p>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="self::node()[$is-block-node]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- /node() -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /.example -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /example -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- example/title -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example/title" mode="print">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example/title" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /example/title -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- indentations -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="indent">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<span class="indent">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</span>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /indent -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <note> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="note">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="note">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='warning'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="class">warning</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /note -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <note><title> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="note/title">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
65241490e40aa0c831988073eed0633dad10c6f2nd</h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /note/title -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- <directive> -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- Inserts link to another directive, which might be in another module. -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- References are converted into lower case. -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<xsl:template match="directive" name="directive">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<code class="directive">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:when test="@module">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:variable name="lowerdirective"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd select="translate(., $uppercase, $lowercase)" />
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:when test="$in-modulesynopsis and @module = /modulesynopsis/name">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <a href="#{$lowerdirective}">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&lt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:value-of select="."/>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&gt;</xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:when>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:otherwise>
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="{$path}/mod/{@module}.html#{$lowerdirective}">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&lt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:value-of select="."/>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="@type='section'">&gt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </a>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:otherwise>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:when>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='section'">&lt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:value-of select="."/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='section'">&gt;</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /directive -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- <module> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Inserts a link to refereed module -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<xsl:template match="module" name="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<code class="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/{.}.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="."/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /module -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <related> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="related">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<table class="related">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='relatedmodules']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$messages/message[@name='relateddirectives']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <td>
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:if test="count(modulelist/*) &gt; 0">
3c56725151a46fef84ce376d709b5339da28e10fnd <ul>
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:apply-templates select="modulelist" />
3c56725151a46fef84ce376d709b5339da28e10fnd </ul>
3c56725151a46fef84ce376d709b5339da28e10fnd </xsl:if>
3c56725151a46fef84ce376d709b5339da28e10fnd </td>
3c56725151a46fef84ce376d709b5339da28e10fnd <td>
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:if test="count(directivelist/*) &gt; 0">
3c56725151a46fef84ce376d709b5339da28e10fnd <ul>
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:apply-templates select="directivelist"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </ul>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </td>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</table>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /related -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- related/modulelist -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="related/modulelist">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:for-each select="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="module"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /related/modulelist -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- related/directivelist -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="related/directivelist">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:for-each select="directive">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="directive"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /related/directivelist -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <table> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="table">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<table>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- existing border attribute will result in <table class="bordered"> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@border">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">bordered</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:if>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- style="zebra": alternating colors per row, i.e. every second row -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- gets a class="odd". Header lines (no <td>) get a -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- class="header". These lines will be excluded from -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- the "odd" line count. That way header lines act -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- interjectional, which creates a better visual and -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- psychological effect. -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="@style = 'zebra'">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:for-each select="tr">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <tr>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="count(td) = 0">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">header</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when
4e5d76cd516a36223b6e73a8000c879a5675e436nd test="position() mod 2 =
4e5d76cd516a36223b6e73a8000c879a5675e436nd (count(preceding-sibling::*[count(td) = 0]) mod 2)">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">odd</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates />
4e5d76cd516a36223b6e73a8000c879a5675e436nd </tr>&lf;
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:for-each>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:otherwise>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates />
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:otherwise>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</table>
8a72c24379e10c3f3d0dfe352bf15e45ee65c179nd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- /table -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- <ol> -->
8a72c24379e10c3f3d0dfe352bf15e45ee65c179nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<xsl:template match="ol">
4e5d76cd516a36223b6e73a8000c879a5675e436nd<ol>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- A. B. C. D. (list-style-type="upper-alpha") -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:if test="@type = 'A'">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">up-A</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:if>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates/>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</ol>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- /ol -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- diverse elements -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- Passes through content -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<xsl:template match="summary|description|usage|syntax|default">
4e5d76cd516a36223b6e73a8000c879a5675e436nd<xsl:apply-templates/>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- /diverse -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- <a> -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="a">
<xsl:choose>
<xsl:when test="not(@href)">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()"/>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<a href="@href">
<xsl:apply-templates select="@*"/>
<xsl:call-template name="helper.uri.fix">
<xsl:with-param name="uri" select="@href"/>
</xsl:call-template>
<xsl:apply-templates select="*|text()"/>
</a>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /a -->
<!-- ==================================================================== -->
<!-- toplink -->
<!-- ==================================================================== -->
<xsl:template name="toplink">
<div class="top">
<a href="#page-header"><img src="{$path}/images/up.gif" alt="top" /></a>
</div>
</xsl:template>
<!-- /toplink -->
<!-- ==================================================================== -->
<!-- <transnote> -->
<!-- translator's notes are displayed in a different color -->
<!-- ==================================================================== -->
<xsl:template match="transnote">
<span class="transnote">
<xsl:text>(</xsl:text>
<em>
<xsl:value-of select="$messages/message[@name='transnote']" />
</em>
<xsl:text> </xsl:text>
<xsl:apply-templates />
<xsl:text>)</xsl:text>
</span>
</xsl:template>
<!-- /transnote -->
<!-- ==================================================================== -->
<!-- Filter &#160; in text() nodes. -->
<!-- In some environments this character won't be transformed correctly, -->
<!-- so we just write it explicitely as "&nbsp;" into the output. -->
<!-- ==================================================================== -->
<xsl:template match="text()" name="filter.nbsp">
<xsl:param name="text" select="." />
<xsl:choose>
<xsl:when test="contains($text, '&#160;')">
<xsl:value-of select="substring-before($text, '&#160;')" />
&nbsp;
<xsl:call-template name="filter.nbsp">
<xsl:with-param name="text" select="substring-after($text, '&#160;')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /filter.nbsp -->
<!-- ==================================================================== -->
<!-- Process everything else by just passing it through -->
<!-- ==================================================================== -->
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()" />
</xsl:copy>
</xsl:template>
<!-- /pass through -->
<!-- ==================================================================== -->
<!-- create a letter bar -->
<!-- ==================================================================== -->
<xsl:template name="letter-bar">
<xsl:param name="letters" />
<xsl:param name="first" />
<xsl:if test="not($first)">
<xsl:text> | </xsl:text>
</xsl:if>
<a href="#{substring($letters,1,1)}">
&nbsp;
<xsl:value-of select="substring($letters, 1, 1)" />
&nbsp;
</a>
<xsl:if test="string-length($letters) &gt; 1">
<xsl:call-template name="letter-bar">
<xsl:with-param name="letters" select="substring($letters, 2)" />
<xsl:with-param name="first" select="false()" />
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- /letter-bar -->
<!-- ==================================================================== -->
<!-- template(s) for collecting all start letters of directives -->
<!-- ==================================================================== -->
<xsl:template name="directive-startletters">
<xsl:param name="directives" />
<xsl:call-template name="_squeeze-letters">
<xsl:with-param name="lastletter" select="''" />
<xsl:with-param name="letters">
<xsl:for-each select="$directives">
<xsl:sort select="name"/>
<xsl:value-of
select="translate(substring(normalize-space(name), 1, 1),
$lowercase, $uppercase)" />
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- /directive-startletters -->
<!-- ==================================================================== -->
<!-- squeeze subsequent letters in a string -->
<!-- ==================================================================== -->
<xsl:template name="_squeeze-letters">
<xsl:param name="letters"/>
<xsl:param name="lastletter"/>
<xsl:variable name="current" select="substring($letters, 1, 1)" />
<xsl:if test="not($lastletter = $current)">
<xsl:value-of select="$current" />
</xsl:if>
<xsl:if test="string-length($letters) &gt; 1">
<xsl:call-template name="_squeeze-letters">
<xsl:with-param name="letters" select="substring($letters, 2)" />
<xsl:with-param name="lastletter" select="$current"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- /_squeeze-letters -->
<!-- ==================================================================== -->
<!-- fix href and target attribute of an element. -->
<!-- ==================================================================== -->
<xsl:template name="helper.uri.fix">
<xsl:param name="uri"/>
<xsl:choose>
<!-- lame is_absolute_uri test -->
<xsl:when test=" contains($uri, ':')
and string-length(substring-before($uri, ':')) &lt; 7">
<xsl:if test="$ext-target">
<xsl:attribute name="target">_blank</xsl:attribute>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="fragment">
<xsl:if test="contains($uri, '#')">
<xsl:value-of select="concat('#', substring-after($uri, '#'))"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="absuri">
<xsl:choose>
<xsl:when test="contains($uri, '#')">
<xsl:value-of select="concat('#', substring-before($uri, '#'))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$uri"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="substring($absuri, string-length($uri), 1) = '/'">
<xsl:attribute name="href">
<xsl:value-of select="concat($absuri, $index-file, $fragment)"/>
</xsl:attribute>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /helper.uri.fix -->
</xsl:stylesheet>