66e48875fca2df6669dab4f2690ee36c6913c0ffnd<?xml version="1.0"?>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!--
db878466c5e95073429dda0bdd001f45e9486e16fielding Licensed to the Apache Software Foundation (ASF) under one or more
db878466c5e95073429dda0bdd001f45e9486e16fielding contributor license agreements. See the NOTICE file distributed with
db878466c5e95073429dda0bdd001f45e9486e16fielding this work for additional information regarding copyright ownership.
db878466c5e95073429dda0bdd001f45e9486e16fielding The ASF licenses this file to You under the Apache License, Version 2.0
db878466c5e95073429dda0bdd001f45e9486e16fielding (the "License"); you may not use this file except in compliance with
db878466c5e95073429dda0bdd001f45e9486e16fielding the License. You may obtain a copy of the License at
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd http://www.apache.org/licenses/LICENSE-2.0
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd Unless required by applicable law or agreed to in writing, software
66e48875fca2df6669dab4f2690ee36c6913c0ffnd distributed under the License is distributed on an "AS IS" BASIS,
66e48875fca2df6669dab4f2690ee36c6913c0ffnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
66e48875fca2df6669dab4f2690ee36c6913c0ffnd See the License for the specific language governing permissions and
66e48875fca2df6669dab4f2690ee36c6913c0ffnd limitations under the License.
66e48875fca2df6669dab4f2690ee36c6913c0ffnd-->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!DOCTYPE xsl:stylesheet [
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY lf SYSTEM "/xsl/util/lf.xml">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY tab SYSTEM "/xsl/util/tab.xml">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY ul.start SYSTEM "/xsl/util/ul-start.xml">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY ul.end SYSTEM "/xsl/util/ul-end.xml" >
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY li.start SYSTEM "/xsl/util/li-start.xml">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!ENTITY li.end SYSTEM "/xsl/util/li-end.xml" >
66e48875fca2df6669dab4f2690ee36c6913c0ffnd]>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:stylesheet version="1.0"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd xmlns="">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- WARNING! Do not touch anything, especially the whitespaces [1] -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- unless you know, what you're doing. The HTML help compiler parses -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- the TOC file not really as html instead of line by line and takes -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- care of whitespace indentations etc. -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- [1] Covered by the &lf; and &tab; entities. -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- You have been warned. -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- create nodeset for referencing later -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="not-exists" select="document('')/xsl:stylesheet/xsl:template
66e48875fca2df6669dab4f2690ee36c6913c0ffnd [@name='data']/not-exists/file" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="data">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- documents not converted (yet?). -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<not-exists>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- example: <file>developer/API.xml</file> -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</not-exists>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- Constants used for case translation -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- document() works relative to the xsl (!) file -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="basedir" select="'../../'"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- icons -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.document" select="'11'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.document.not-translated" select="'12'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.section" select="'35'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.directive" select="'41'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.commondirective" select="'19'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- this should not happen. this icon is only displayed within the
66e48875fca2df6669dab4f2690ee36c6913c0ffnd toc view of the help workshop (it's a question mark): -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="icon.no-anchor" select="'9'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- for module-translatename -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:include href="/xsl/util/modtrans.xsl"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- <sitemap> -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- Create CHM contents file (toc) from sitemap -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- The file is an html style text file (see warning on top) -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template match="/sitemap">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- html head -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;html&gt;&lt;head&gt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;title&gt;Apache HTTP Server Documentation&lt;/title&gt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;/head&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;body&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- toc properties first -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;object type="text/site properties"&gt;</xsl:text>&lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- XXX: that magic value is still obfuscated. Research needed ... -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;param name="Window Styles" value="0x800027"&gt;</xsl:text>&lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;param name="Font" value="</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$toc-font" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>"&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;/object&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&ul.start; &lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!-- index page on top. -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="normalize-space($message[@id='apachehttpserver'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href" select="'index.html'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!-- iterate over the categories in document order -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="category">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="folder">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="normalize-space(title)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>&lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.start; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:apply-templates select="page" />
63af2322864967656993b04c56e50fd169dc72c7nd <xsl:if test="@id = 'modules'">
63af2322864967656993b04c56e50fd169dc72c7nd <xsl:apply-templates select="document($allmodules)/modulefilelist" />
63af2322864967656993b04c56e50fd169dc72c7nd </xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.end; &lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&ul.end; &lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;/body&gt;&lt;/html&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /sitemap -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- category/page -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template match="category/page">
42ca33101babe74a1849cdb4565608b617c2d460nd<xsl:if test="not(starts-with(@href,'http:') or starts-with(@href, 'https:'))">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- document entry, if not href attribute, assume it means "sitemap" -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="@href">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space(.)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='sitemap'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="not(@href)">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>sitemap.html</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="contains(@href, '#')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-before(@href, '#')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="@href"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- now try to index the sections of the document -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:apply-templates select="self::page" mode="index" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.end; &lf;&tab;
42ca33101babe74a1849cdb4565608b617c2d460nd</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /category/page -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- category/page, mode="index" -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- display all section headings of one page -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template match="category/page" mode="index">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="href.offline">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="string-length(@href) = 0">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>sitemap.html</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="helper.href.offline">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href" select="@href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:variable>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="xml"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat(substring-before($href.offline, '.html'), '.xml')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:if test="not($xml = $not-exists)">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="xmlfile">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="metafile"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(document(concat($basedir, $xml))/*/@metafile)
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /metafile" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$metafile/variants/variant[.=$doclang] and not
66e48875fca2df6669dab4f2690ee36c6913c0ffnd ($metafile/variants/variant[.=$doclang]
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /@htmlonly = 'yes')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="concat($basedir,
66e48875fca2df6669dab4f2690ee36c6913c0ffnd substring-before($xml, '.xml'), $xml-ext)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="concat($basedir, $xml)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:variable>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="current" select="document($xmlfile)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="count($current/*/*[local-name()='section' or
66e48875fca2df6669dab4f2690ee36c6913c0ffnd local-name()='category']) &gt; 1">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &lf;&tab;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.start; &lf;&tab;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="$current/*/*[local-name()='section' or
66e48875fca2df6669dab4f2690ee36c6913c0ffnd local-name()='category']">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="normalize-space(title)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@id">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat(substring-before($xml, '.xml'),
66e48875fca2df6669dab4f2690ee36c6913c0ffnd '.html#', @id)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.end; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:if> <!-- count() > 1 -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:if> <!-- xml exists -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /category/page, "index" -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- category/modulefilelist -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- process all listed module files -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
63af2322864967656993b04c56e50fd169dc72c7nd<xsl:template match="modulefilelist">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- create a module name translation list for sorting -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="translist">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>-</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="modulefile">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="current"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(concat($basedir,'mod/',.))/modulesynopsis" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$current/name"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="module-translatename">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="$current/name"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> -</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:variable>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- put core and mpm_common on top -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="toc-entry.mpm">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(concat($basedir, 'mod/', modulefile[starts-with(.,
66e48875fca2df6669dab4f2690ee36c6913c0ffnd 'core.xml')]/text()))/modulesynopsis" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="'core'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="toc-entry.mpm">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(concat($basedir, 'mod/', modulefile[starts-with(.,
66e48875fca2df6669dab4f2690ee36c6913c0ffnd 'mpm_common.xml')]/text()))/modulesynopsis" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="'common'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- remaining MPMs -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:for-each select="modulefile">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:sort select="substring-before(substring-after($translist, concat('- ',
66e48875fca2df6669dab4f2690ee36c6913c0ffnd document(concat($basedir, 'mod/', .))/modulesynopsis/name, ' ')), ' -')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="current"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(concat($basedir, 'mod/', .))/modulesynopsis" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="$current/status='MPM' and not($current/name='mpm_common')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="toc-entry.mpm">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current" select="$current" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="substring-before(
66e48875fca2df6669dab4f2690ee36c6913c0ffnd substring-after($translist, concat('- ', $current/name, ' ')),
66e48875fca2df6669dab4f2690ee36c6913c0ffnd ' -')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- normal modules -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:for-each select="modulefile">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:sort select="substring-before(substring-after($translist, concat('- ',
66e48875fca2df6669dab4f2690ee36c6913c0ffnd document(concat($basedir, 'mod/', .))/modulesynopsis/name, ' ')), ' -')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:variable name="current"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="document(concat($basedir, 'mod/', .))/modulesynopsis" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="not($current/status='MPM') and not($current/status='Core')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="toc-entry.module">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current" select="$current"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /category/modulefilelist -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- toc-entry.mpm -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- create entry (and initiate subsection entries) of an mpm -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="toc-entry.mpm">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="current" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$name='core'">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='apachecore'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$name='common'">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='apachempmcommon'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='apachempm'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat('mod/', $current/name, '.html')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="sections-and-directives">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current" select="$current" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.end; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /toc-entry.mpm -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- toc-entry.module -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- create entry (and initiate subsection entries) of a module -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="toc-entry.module">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="current"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='apachemodule'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$current/name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat('mod/', $current/name, '.html')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:call-template name="sections-and-directives">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="current" select="$current" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd&li.end; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /toc-entry.module -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- sections-and-directives -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- process sections and directives of a module file -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="sections-and-directives">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="current" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:if test="count($current/section) &gt; 0 or
66e48875fca2df6669dab4f2690ee36c6913c0ffnd count($current/directivesynopsis) &gt; 0">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.start; &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!-- sections -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="$current/section">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name" select="normalize-space(title)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@id">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat('mod/', $current/name, '.html#', @id)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!-- directives within the current document -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="$current/directivesynopsis[not(@location)]">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:sort select="name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@type='section'">&lt;</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="name"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@type='section'">&gt;</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$message[@id='directive']
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /@replace-space-with">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$message[@id='directive']
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /@replace-space-with" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='directive'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat('mod/', $current/name, '.html#',
66e48875fca2df6669dab4f2690ee36c6913c0ffnd translate(name, $uppercase, $lowercase))" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="icon" select="$icon.directive" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <!-- directives described elsewhere -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:for-each select="$current/directivesynopsis[@location]">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:sort select="name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.start;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="name">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@type='section'">&lt;</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="name"/>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:if test="@type='section'">&gt;</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$message[@id='directive']
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /@replace-space-with">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$message[@id='directive']
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /@replace-space-with" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text> </xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="normalize-space($message[@id='directive'])" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:with-param>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat('mod/', @location, '.html#',
66e48875fca2df6669dab4f2690ee36c6913c0ffnd translate(name, $uppercase, $lowercase))" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="indent" select="'&#9;&#9;&#9;&#9;'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="icon" select="$icon.commondirective" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &li.end; &lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:for-each>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd &ul.end; &lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:if> <!-- sections or directives present -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /sections-and-directives -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- object -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- display an <object> and do some magic to select the right content -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="object">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="name" select="'? unknown ?'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="icon" select="$icon.section" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="indent" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="href.offline">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="helper.href.offline">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="href" select="$href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:variable>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- xml file is expected to have the same basename -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:variable name="xml"
66e48875fca2df6669dab4f2690ee36c6913c0ffnd select="concat(substring-before($href.offline, '.html'), '.xml')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;object type="text/sitemap"&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:value-of select="$indent" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;param name="Name" value="</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="$name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>"&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:value-of select="$indent" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:if test="string-length($href.offline) &gt; 0">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>&lt;param name="Local" value="</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="$href.offline" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>"&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$indent" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:if>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;param name="ImageNumber" value="</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="string-length($href.offline) &gt; 0">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="contains($href, '#')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$icon" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:when test="$doclang='en' or
66e48875fca2df6669dab4f2690ee36c6913c0ffnd (not($xml = $not-exists) and
66e48875fca2df6669dab4f2690ee36c6913c0ffnd (document(document(concat($basedir, $xml))
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /*/@metafile)
66e48875fca2df6669dab4f2690ee36c6913c0ffnd /metafile/variants/variant
66e48875fca2df6669dab4f2690ee36c6913c0ffnd [.=$doclang and not(@htmlonly='yes')]))">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$icon.document" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$icon.document.not-translated" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$icon.no-anchor" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>"&gt;</xsl:text>&lf;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:value-of select="substring($indent, 2)" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;/object&gt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /object -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- folder -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="folder">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="name" select="'? unknown ?'" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;object type="text/sitemap"&gt;</xsl:text>&lf;&tab;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;param name="Name" value="</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="$name" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>"&gt;</xsl:text>&lf;&tab;
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:text>&lt;/object&gt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /folder -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- helper.href.offline -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- change uri reference to work offline (/ -> /index.html) -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="helper.href.offline">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="string-length($href) = 0" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="contains($href, '#') and '/' = substring($href,
66e48875fca2df6669dab4f2690ee36c6913c0ffnd string-length(substring-before($href, '#')), 1)">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-before($href, '#')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>index.html#</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-after($href, '#')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="substring($href, string-length($href), 1) = '/'">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>index.html</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$href" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /helper.href.offline -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- filter.attval -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- escape special characters for being valid within an attribute -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="filter.attval">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="text" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="contains($text, '&amp;')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="substring-before($text, '&amp;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>&amp;amp;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="substring-after($text, '&amp;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="$text" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /filter.attval -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- filter.attval.special -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- accompanying template of filter.attval -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- ==================================================================== -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:param name="text" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="contains($text, '&lt;')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-before($text, '&lt;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>&amp;lt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="substring-after($text, '&lt;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="contains($text, '&gt;')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-before($text, '&gt;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>&amp;gt;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="substring-after($text, '&gt;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:when test="contains($text, '&quot;')">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="substring-before($text, '&quot;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:text>&amp;quot;</xsl:text>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:call-template name="filter.attval.special">
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:with-param name="text" select="substring-after($text, '&quot;')" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd </xsl:call-template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:when>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <xsl:value-of select="$text" />
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:otherwise>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:choose>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:template>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<!-- /filter.attval.special -->
66e48875fca2df6669dab4f2690ee36c6913c0ffnd
66e48875fca2df6669dab4f2690ee36c6913c0ffnd</xsl:stylesheet>