<?xml version="1.0"?>
<!--
- Copyright 2002-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
<body id="directive-index">&lf;
<xsl:call-template name="top"/>&lf;
+ <xsl:call-template name="retired" />
+
<div id="preamble">
<h1>
<xsl:value-of select="title" />
<div id="directive-ref">
<xsl:variable name="directives"
- select="document(modulefilelist/modulefile)
+ select="document(document(document(
+ document($allmodules)/modulefilelist/modulefile
+ )/*/@metafile)/metafile/@reference)
/modulesynopsis/directivesynopsis[not(@location)]" />
+ <xsl:variable name="modules"
+ select="document(
+ document($allmodules)/modulefilelist/modulefile
+ )/modulesynopsis" />
<xsl:variable name="start-letters">
<xsl:call-template name="directive-startletters">
</span>
</td>&lf;
<td>
- <xsl:apply-templates select="legend/table[position()=1]" />
+ <table>
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='serverconfig']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='serverconfig']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='virtualhost']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='virtualhost']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='directory']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='directory']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='htaccess']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='htaccess']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='proxy']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='proxy']"/>
+ </td>
+ </tr>&lf;
+ </table>
</td>&lf;
<td>
- <xsl:apply-templates select="legend/table[position()=2]" />
+ <table>
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='core']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='core']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='mpm']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='mpm']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='base']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='base']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='extension']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='extension']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='experimental']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='experimental']"/>
+ </td>
+ </tr>&lf;
+ <tr>
+ <th>
+ <xsl:value-of
+ select="$message[@id='external']/@letter"/>
+ </th>
+ <td>
+ <xsl:value-of
+ select="$message[@id='external']"/>
+ </td>
+ </tr>&lf;
+ </table>
</td>
</tr>&lf;
</table>&lf;
<xsl:with-param name="letters-todo" select="$start-letters" />
<xsl:with-param name="offset" select="number(0)" />
<xsl:with-param name="directives" select="$directives" />
+ <xsl:with-param name="modules" select="$modules" />
</xsl:call-template>
</table>
</div>&lf; <!-- /#directive-ref -->
<xsl:param name="letters-todo" />
<xsl:param name="offset" />
<xsl:param name="directives" />
+<xsl:param name="modules" />
<xsl:variable name="letter" select="substring($letters-todo, 1, 1)" />
select="$directives[$letter=translate(substring(normalize-space(name), 1,1),
$lowercase,$uppercase)]">
<xsl:sort select="name" />
+<xsl:sort select="../name" /> <!-- in case of duplicate directives -->
+
+ <xsl:choose>
+ <xsl:when test="$modules[name=current()/../name]
+ /directivesynopsis[name=current()/name]">
+ <xsl:call-template name="reference-of-letter-loop">
+ <xsl:with-param name="letter" select="$letter" />
+ <xsl:with-param name="directive"
+ select="$modules[name=current()/../name]
+ /directivesynopsis[name=current()/name]" />
+ <xsl:with-param name="offset" select="$offset" />
+ <xsl:with-param name="position" select="position()" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="reference-of-letter-loop">
+ <xsl:with-param name="letter" select="$letter" />
+ <xsl:with-param name="directive" select="." />
+ <xsl:with-param name="offset" select="$offset" />
+ <xsl:with-param name="position" select="position()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:for-each> <!-- /directives -->
+
+<!-- call next letter, if there is -->
+<xsl:if test="string-length($letters-todo) > 1">
+ <xsl:call-template name="reference-of-letter">
+ <xsl:with-param name="letters-todo"
+ select="substring($letters-todo, 2)" />
+ <xsl:with-param name="offset"
+ select="(count($directives[$letter=translate(substring(
+ normalize-space(name), 1, 1),
+ $lowercase, $uppercase)])
+ + $offset) mod 2" />
+ <xsl:with-param name="directives" select="$directives" />
+ <xsl:with-param name="modules" select="$modules" />
+ </xsl:call-template>
+</xsl:if>
+</xsl:template>
+<!-- /reference-of-letter -->
+
+
+<xsl:template name="reference-of-letter-loop">
+<xsl:param name="directive" />
+<xsl:param name="letter" />
+<xsl:param name="offset" />
+<xsl:param name="position" />
<tr>
- <xsl:if test="position() mod 2 = $offset">
+ <xsl:if test="$position mod 2 = $offset">
<xsl:attribute name="class">odd</xsl:attribute>
</xsl:if>
<td>
- <a href="{../name}.html#{translate(name, $uppercase, $lowercase)}">
- <xsl:if test="position()=1">
+ <a href="{$directive/../name}.html#{
+ translate($directive/name, $uppercase, $lowercase)}">
+ <xsl:if test="$position = 1">
<xsl:attribute name="id">
<xsl:value-of select="$letter" />
</xsl:attribute>
</xsl:attribute>
</xsl:if>
- <xsl:apply-templates select="syntax" />
+ <xsl:apply-templates select="$directive/syntax" />
</a>
</td>
- <td>
- <!-- if the default value contains (at least) one <br />, -->
- <!-- this probably means that a short explanation follows -->
- <!-- the actual default value. We cut off the string -->
- <!-- after the <br /> so it will not be shown here. -->
- <!-- (add the + character instead) -->
- <xsl:variable name="default">
- <xsl:choose>
- <xsl:when test="count(default[count(br) > 0]) > 0">
- <xsl:value-of
- select="default/child::node()
- [count(preceding-sibling::*) = 0]" />
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="default"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
+ <!-- if the default value contains (at least) one <br />, -->
+ <!-- this probably means that a short explanation follows -->
+ <!-- the actual default value. We cut off the string -->
+ <!-- after the <br /> so it will not be shown here. -->
+ <!-- (add the + character instead) -->
+ <xsl:variable name="default">
+ <xsl:choose>
+ <xsl:when test="count($directive/default[count(br) > 0])
+ > 0">
+ <xsl:value-of
+ select="$directive/default/child::node()
+ [count(preceding-sibling::*) = 0]" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$directive/default"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Check if the syntax and the default strings really start with -->
+ <!-- the directive name, in order to avoid typo, or unexpected -->
+ <!-- formatting. -->
+ <!-- Un-comment these lines if you want to perform these additional-->
+ <!-- tests. They are not run by default, because of the false -->
+ <!-- positives and the noise they generate. -->
+<!--
+ <xsl:if test="string-length(syntax) = 0 or
+ (syntax != name and
+ substring-before(syntax, ' ') != name and
+ substring-before(syntax, ' ') != concat ('<', name) and
+ substring-before(syntax, ' ') != concat ('<', name, '>')
+ )" >
+
+ <xsl:message>Spurious syntax string for <xsl:value-of select="name"/>: '<xsl:value-of select="syntax"/>'</xsl:message>
+ </xsl:if>
+
+ <xsl:if test="string-length($default) > 0
+ and substring-before($default, ' ') != name">
+ <xsl:message>Spurious default string for <xsl:value-of select="name"/>: <xsl:value-of select="$default"/></xsl:message>
+ </xsl:if>
+-->
+
+ <!-- Now. If the default output is empty, the xslt processor emits -->
+ <!-- <td />. In order to avoid this, we simply emit <td></td> -->
+ <!-- by ourselves. Crap. -->
+ <xsl:choose>
+ <xsl:when test="not(substring(substring-after(
+ concat($default, ' '), name),1,20) = '')">
+ <td>
<xsl:value-of select="substring(substring-after(concat($default,
' '), name),1,20)" />
+
<xsl:if test="string-length(substring-after(concat($default, ' '),
name)) > 20
- or count(default[count(br) > 0]) > 0">
+ or count($directive/default[count(br) > 0])
+ > 0">
<xsl:text> +</xsl:text>
</xsl:if>
</td>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping="yes"><td></td></xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
<td>
- <xsl:if test="contextlist/context
- [normalize-space(.)='server config']">s</xsl:if>
- <xsl:if test="contextlist/context
- [normalize-space(.)='virtual host']">v</xsl:if>
- <xsl:if test="contextlist/context
- [normalize-space(.)='directory']">d</xsl:if>
- <xsl:if test="contextlist/context
- [normalize-space(.)='.htaccess']">h</xsl:if>
+ <xsl:if test="$directive/contextlist/context
+ [normalize-space(.)='server config']">
+ <xsl:value-of select="$message[@id='serverconfig']/@letter"/>
+ </xsl:if>
+ <xsl:if test="$directive/contextlist/context
+ [normalize-space(.)='virtual host']">
+ <xsl:value-of select="$message[@id='virtualhost']/@letter"/>
+ </xsl:if>
+ <xsl:if test="$directive/contextlist/context
+ [normalize-space(.)='directory']">
+ <xsl:value-of select="$message[@id='directory']/@letter"/>
+ </xsl:if>
+ <xsl:if test="$directive/contextlist/context
+ [normalize-space(.)='.htaccess']">
+ <xsl:value-of select="$message[@id='htaccess']/@letter"/>
+ </xsl:if>
+ <xsl:if test="$directive/contextlist/context
+ [normalize-space(.)='proxy section']">
+ <xsl:value-of select="$message[@id='proxy']/@letter"/>
+ </xsl:if>
</td>
<td>
<xsl:choose>
- <xsl:when test="../status='Base'">B</xsl:when>
- <xsl:when test="../status='MPM'">M</xsl:when>
- <xsl:when test="../status='Core'">C</xsl:when>
- <xsl:when test="../status='Extension'">E</xsl:when>
- <xsl:when test="../status='Experimental'">X</xsl:when>
+ <xsl:when test="$directive/../status='External'">
+ <xsl:choose>
+ <xsl:when test="$directive/../status/@href">
+ <a href="{$directive/../status/@href}">
+ <xsl:value-of
+ select="$message[@id='external']/@letter"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$message[@id='external']/@letter"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="status" select="translate(
+ $directive/../status, $uppercase, $lowercase)"/>
+ <xsl:value-of select="$message[@id=$status]/@letter"/>
+ </xsl:otherwise>
</xsl:choose>
</td>
</tr>
<tr>
- <xsl:if test="position() mod 2 = $offset">
+ <xsl:if test="$position mod 2 = $offset">
<xsl:attribute name="class">odd</xsl:attribute>
</xsl:if>
<td colspan="4" class="descr">
<xsl:choose>
- <xsl:when test="string-length(normalize-space(description)) > 0">
- <xsl:apply-templates select="description"/>
+ <xsl:when test="string-length(normalize-space(
+ $directive/description)) > 0">
+ <xsl:apply-templates select="$directive/description" />
</xsl:when>
<xsl:otherwise>
<xsl:text>-</xsl:text>
</xsl:choose>
</td>
</tr>&lf;
-</xsl:for-each> <!-- /directives -->
-
-<!-- call next letter, if there is -->
-<xsl:if test="string-length($letters-todo) > 1">
- <xsl:call-template name="reference-of-letter">
- <xsl:with-param name="letters-todo"
- select="substring($letters-todo, 2)" />
- <xsl:with-param name="offset"
- select="(count($directives[$letter=translate(substring(
- normalize-space(name), 1, 1), $lowercase, $uppercase)])
- + $offset) mod 2" />
- <xsl:with-param name="directives" select="$directives" />
- </xsl:call-template>
-</xsl:if>
</xsl:template>
-<!-- /reference-of-letter -->
</xsl:stylesheet>