synopsis.xsl revision beaad6ac31022179c44d88536811e9ccd9425696
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<?xml version="1.0"?>
19d8729755d7f4d9503029a628dacbbdabcd2264wrowe
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!--
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard Copyright 2002-2004 Apache Software Foundation
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard Licensed under the Apache License, Version 2.0 (the "License");
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard you may not use this file except in compliance with the License.
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard You may obtain a copy of the License at
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard http://www.apache.org/licenses/LICENSE-2.0
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard Unless required by applicable law or agreed to in writing, software
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard distributed under the License is distributed on an "AS IS" BASIS,
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard See the License for the specific language governing permissions and
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard limitations under the License.
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard-->
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!DOCTYPE xsl:stylesheet [
5a4b3207b395b426c5a9066f4afea8d3fa8c6660stoddard <!ENTITY lf SYSTEM "util/lf.xml">
5a4b3207b395b426c5a9066f4afea8d3fa8c6660stoddard]>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<xsl:stylesheet version="1.0"
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard xmlns="http://www.w3.org/1999/xhtml">
19d8729755d7f4d9503029a628dacbbdabcd2264wrowe
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!-- ==================================================================== -->
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!-- <modulesynopsis> -->
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!-- Process an entire document into an HTML page -->
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<!-- ==================================================================== -->
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<xsl:template match="modulesynopsis">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard<html xml:lang="{$messages/@lang}" lang="{$messages/@lang}">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:call-template name="head" />&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <body>&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:call-template name="top" />&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <div id="page-content">&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <div id="preamble">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <h1>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:choose>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:when test="status='Core'">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='apachecore']" />
bb65aeae7af1d33b64252bbc1b966942d757ac60wrowe </xsl:when>
56e85d89d42a6980f31b800266649efbed338da3wrowe <xsl:when test="name='mpm_common'">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='apachempmcommon']" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:when>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:when test="status='MPM'">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='apachempm']" />
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe <xsl:text> </xsl:text>
3082ab8b90e027fa27680f140987ea7e20df5088wrowe <xsl:call-template name="module-translatename">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:with-param name="name" select="name" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:call-template>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:when>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:otherwise>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='apachemodule']" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:text> </xsl:text>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="name" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:otherwise>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:choose>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </h1>&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:call-template name="langavail" />&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard
26b9ccb55ff33097af4914f2e4bd36fec99a039dwrowe <!-- Description and module-headers -->
0bcc003d275c6b0a9060d43be89762b218cbc2c7wrowe <table class="module">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <tr>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <th>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <a href="module-dict.html#Description">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='description']" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:text>:</xsl:text>
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe </a>
dcf1a2f80f16265f00fe147de1dbd91af9c32a42wrowe </th>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <td>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:apply-templates select="description" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </td>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </tr>&lf;
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <tr>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <th>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <a href="module-dict.html#Status">
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:value-of select="$messages/message
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard [@name='status']" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard <xsl:text>:</xsl:text>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </a>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </th>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <td>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:value-of select="status" />
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </td>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </tr>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:if test="identifier">&lf;
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <tr>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <th>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <a href="module-dict.html#ModuleIdentifier">
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:value-of select="$messages/message
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe [@name='moduleidentifier']" />
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:text>:</xsl:text>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </a>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </th>
2b976b4e693d0fe6df3909182a5e36b06575bbc4wrowe <td>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:value-of select="identifier" />
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </td>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </tr>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </xsl:if>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:if test="sourcefile">&lf;
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <tr>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <th>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <a href="module-dict.html#SourceFile">
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:value-of select="$messages/message
2b976b4e693d0fe6df3909182a5e36b06575bbc4wrowe [@name='sourcefile']" />
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:text>:</xsl:text>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </a>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe </th>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <td>
aa1fc08e9f6acaa9de8f1301962c2dca202377fbwrowe <xsl:value-of select="sourcefile" />
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </td>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </tr>
dfbbb9854bd1c9b10d3e53cfe0e736d2be844841stoddard </xsl:if>
<xsl:if test="compatibility">&lf;
<tr>
<th>
<a href="module-dict.html#Compatibility">
<xsl:value-of select="$messages/message
[@name='compatibility']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:apply-templates select="compatibility" />
</td>
</tr>
</xsl:if>
</table>&lf;
<!-- Summary of module features/usage (1 to 3 paragraphs, -->
<!-- optional) -->
<xsl:if test="summary">
<h3>
<xsl:value-of select="$messages/message
[@name='summary']" />
</h3>&lf;
<xsl:apply-templates select="summary" />
</xsl:if>
</div>&lf; <!-- /#preamble -->
<xsl:if test="not($is-chm) or seealso">
<div id="quickview">
<xsl:if test="not($is-chm)">
<h3 class="directives">
<xsl:value-of select="$messages/message
[@name='directives']" />
</h3>&lf;
<xsl:choose>
<xsl:when test="directivesynopsis">
<ul id="toc">&lf;
<xsl:for-each select="directivesynopsis">
<xsl:sort select="name" />
<xsl:variable name="lowername"
select="translate(name, $uppercase,
$lowercase)" />
<xsl:choose>
<xsl:when test="not(@location)">
<li>
<img src="{$path}/images/down.gif"
alt="" />
<xsl:text> </xsl:text>
<a href="#{$lowername}">
<xsl:if test="@type='section'"
>&lt;</xsl:if>
<xsl:value-of select="name" />
<xsl:if test="@type='section'"
>&gt;</xsl:if>
</a>
</li>&lf;
</xsl:when>
<xsl:otherwise>
<xsl:variable name="lowerlocation"
select="translate(@location, $uppercase,
$lowercase)" />
<li>
<img src="{$path}/images/right.gif"
alt="" />
<xsl:text> </xsl:text>
<a href="{$lowerlocation}.html#{
$lowername}">
<xsl:if test="@type='section'"
>&lt;</xsl:if>
<xsl:value-of select="name" />
<xsl:if test="@type='section'"
>&gt;</xsl:if>
</a>
</li>&lf;
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</ul>&lf; <!-- /toc -->
</xsl:when> <!-- have directives -->
<xsl:otherwise>
<p>
<xsl:value-of select="$messages/message
[@name='nodirectives']" />
</p>&lf;
</xsl:otherwise>
</xsl:choose>
<xsl:if test="section">
<h3>
<xsl:value-of select="$messages/message
[@name='topics']" />
</h3>&lf;
<ul id="topics">&lf;
<xsl:apply-templates
select="section" mode="index" />
</ul>
</xsl:if>
</xsl:if> <!-- /!is-chm -->
<xsl:if test="seealso">
<h3>
<xsl:value-of select="$messages/message
[@name='seealso']" />
</h3>&lf;
<ul class="seealso">&lf;
<xsl:for-each select="seealso">
<li>
<xsl:apply-templates />
</li>&lf;
</xsl:for-each>
</ul>
</xsl:if>
</div> <!-- /#quickview -->
</xsl:if>&lf; <!-- have sidebar -->
<!-- Sections of documentation about the module as a whole -->
<xsl:apply-templates select="section" />&lf;
<!-- Directive documentation -->
<xsl:apply-templates select="directivesynopsis">
<xsl:sort select="name" />
</xsl:apply-templates>
</div>&lf; <!-- /#page-content -->
<xsl:call-template name="bottom" />&lf;
</body>
</html>
</xsl:template>
<!-- /modulesynopsis -->
<!-- ==================================================================== -->
<!-- Directivesynopsis -->
<!-- ==================================================================== -->
<xsl:template match="directivesynopsis">
<xsl:if test="not(@location)">
<xsl:call-template name="toplink" />&lf;
<div class="directive-section">
<xsl:variable name="lowername"
select="translate(name, $uppercase, $lowercase)" />
<!-- Directive heading gets both mixed case and lowercase -->
<!-- anchors, and includes lt/gt only for "section" directives -->
<h2>
<a id="{name}" name="{name}">
<xsl:if test="@type='section'">&lt;</xsl:if>
<xsl:value-of select="name" />
<xsl:if test="@type='section'">&gt;</xsl:if>
</a>
<xsl:choose>
<xsl:when test="$messages/message
[@name='directive']/@replace-space-with">
<xsl:value-of select="$messages/message
[@name='directive']/@replace-space-with"/>
</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>
<a id="{$lowername}" name="{$lowername}">
<xsl:value-of select="$messages/message[@name='directive']" />
</a>
</h2>&lf;
<!-- Directive header -->
<table class="directive">&lf;
<tr>
<th>
<a href="directive-dict.html#Description">
<xsl:value-of select="$messages/message
[@name='description']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:value-of select="description" />
</td>
</tr>&lf;
<tr>
<th>
<a href="directive-dict.html#Syntax">
<xsl:value-of select="$messages/message[@name='syntax']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<code>
<xsl:apply-templates select="syntax" />
</code>
</td>
</tr>
<xsl:if test="default">&lf;
<tr>
<th>
<a href="directive-dict.html#Default">
<xsl:value-of select="$messages/message[@name='default']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<code>
<xsl:apply-templates select="default" />
</code>
</td>
</tr>
</xsl:if>&lf;
<tr>
<th>
<a href="directive-dict.html#Context">
<xsl:value-of select="$messages/message[@name='context']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:apply-templates select="contextlist" />
</td>
</tr>
<xsl:if test="override">&lf;
<tr>
<th>
<a href="directive-dict.html#Override">
<xsl:value-of select="$messages/message[@name='override']"/>
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:value-of select="override" />
</td>
</tr>
</xsl:if>&lf;
<tr>
<th>
<a href="directive-dict.html#Status">
<xsl:value-of select="$messages/message[@name='status']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:value-of select="/status" />
</td>
</tr>&lf;
<tr>
<th>
<a href="directive-dict.html#Module">
<xsl:value-of select="$messages/message[@name='module']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:choose>
<xsl:when test="modulelist">
<xsl:apply-templates select="modulelist" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="/name" />
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<xsl:if test="compatibility">&lf;
<tr>
<th>
<a href="directive-dict.html#Compatibility">
<xsl:value-of select="$messages/message
[@name='compatibility']" />
<xsl:text>:</xsl:text>
</a>
</th>
<td>
<xsl:apply-templates select="compatibility" />
</td>
</tr>
</xsl:if>&lf;
</table>
<xsl:apply-templates select="usage" />&lf;
<xsl:if test="seealso">
<h3>
<xsl:value-of select="$messages/message[@name='seealso']" />
</h3>&lf;
<ul>&lf;
<xsl:for-each select="seealso">
<li>
<xsl:apply-templates />
</li>&lf;
</xsl:for-each>
</ul>&lf;
</xsl:if>
</div>&lf; <!-- /.directive-section -->
</xsl:if>
</xsl:template>
<!-- /directivesynopsis -->
<!-- ==================================================================== -->
<!-- <contextlist> -->
<!-- ==================================================================== -->
<xsl:template match="contextlist">
<xsl:apply-templates select="context" />
</xsl:template>
<!-- /contextlist -->
<!-- ==================================================================== -->
<!-- <context> -->
<!-- Each entry is separeted with a comma -->
<!-- ==================================================================== -->
<xsl:template match="context">
<xsl:choose>
<xsl:when test="normalize-space(.) = 'server config'">
<xsl:value-of select="$messages/message[@name='serverconfig']" />
</xsl:when>
<xsl:when test="normalize-space(.) = 'virtual host'">
<xsl:value-of select="$messages/message[@name='virtualhost']" />
</xsl:when>
<xsl:when test="normalize-space(.) = 'directory'">
<xsl:value-of select="$messages/message[@name='directory']" />
</xsl:when>
<xsl:when test="normalize-space(.) = '.htaccess'">
<xsl:value-of select="$messages/message[@name='htaccess']" />
</xsl:when>
<xsl:otherwise> <!-- error -->
<xsl:message terminate="yes">
unknown context: <xsl:value-of select="." />
</xsl:message>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:template>
<!-- /context -->
<!-- ==================================================================== -->
<!-- <modulelist> -->
<!-- ==================================================================== -->
<xsl:template match="modulelist">
<xsl:for-each select="module">
<xsl:call-template name="module" />
<xsl:if test="position() != last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!-- /modulelist -->
<!-- ==================================================================== -->
<!-- modulesynopsis/compatibility -->
<!-- ==================================================================== -->
<xsl:template match="modulesynopsis/compatibility">
<xsl:apply-templates />
</xsl:template>
<!-- ==================================================================== -->
<!-- directivesynopsis/compatibility -->
<!-- ==================================================================== -->
<xsl:template match="directivesynopsis/compatibility">
<xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>