common.xsl revision 3c56725151a46fef84ce376d709b5339da28e10f
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes<?xml version="1.0"?>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes<xsl:stylesheet version="1.0"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes xmlns="http://www.w3.org/1999/xhtml">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Please, don't hard-code output strings! Use the language -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- files and the translation "stuff"... -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Constants used for case translation -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!--
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes space separated list of blockelements defined in common.dtd
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes used for inline content catching in <example>s
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:variable name="blockelements">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes p example note table ul ol dl pre img blockquote
70953fb44a7140fe206c3a5f011e24209c8c5c6abnicholes </xsl:variable>
70953fb44a7140fe206c3a5f011e24209c8c5c6abnicholes
70953fb44a7140fe206c3a5f011e24209c8c5c6abnicholes <!-- relative path to /manual/ -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:variable name="path">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:when test="*/relativepath/@href">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="*/relativepath/@href"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:when>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:otherwise>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="'..'"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:otherwise>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:variable>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- load outsourced page types -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="moduleindex.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="directiveindex.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="manualpage.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="synopsis.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="sitemap.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:include href="quickreference.xsl"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- make sure, we set relative anchors
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes only, if we're actually transforming
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes a modulefile (see <directive>) -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:variable name="in-modulesynopsis"><xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:when test="/quickreference">0</xsl:when>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:otherwise>1</xsl:otherwise></xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:variable>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Utility templates for constructing pages -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- HTML head -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template name="head">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <head>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:comment>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes This file is generated from xml source: DO NOT EDIT
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:comment>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <title>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:when test="name">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="name"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:when>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:otherwise>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="title"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:otherwise>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:choose>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='apachetitle']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </title>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <link title="Main stylesheet" type="text/css" media="all" rel="stylesheet"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes href="{$path}/style/css/manual.css" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <link title="No Sidebar - Default font size" type="text/css" media="all"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes rel="alternate stylesheet"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes href="{$path}/style/css/manual-loose-100pc.css"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <link type="text/css" media="print"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes rel="stylesheet"
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes href="{$path}/style/css/manual-print.css"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <link rel="shortcut icon" href="{$path}/images/favicon.ico" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </head>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:template>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- /head -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <!-- page top -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template name="top">
0a39e7683f6611d66c55712f50bb240428d832a1bnicholes <div id="page-header">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:call-template name="super-menu" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <p class="apache">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='apachehttpserver']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </p>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <img src="{$path}/images/feather.gif" alt="" />
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </div> <!-- /page-header -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <div class="up">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="./"><img src="{$path}/images/left.gif" alt="&lt;-" title="&lt;-" /></a>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg </div>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <div id="path">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="http://www.apache.org/">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='apache']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> &gt; </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="http://httpd.apache.org/">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='http-server']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> &gt; </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="http://httpd.apache.org/docs-project/">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='documentation']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> &gt; </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="{$path}/">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='version']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="/modulesynopsis or /directiveindex or /quickreference">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> &gt; </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="./">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='modules']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg </div> <!-- /path -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:template>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- /top -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- page bottom -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template name="bottom">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <div id="footer">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <p class="apache">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:value-of select="$messages/message[@name='maintainedby']"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:text> </xsl:text>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </p>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:call-template name="super-menu"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </div> <!-- /footer -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:template>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- /bottom -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Process a documentation section -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template match="section">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:call-template name="toplink"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <div class="section">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section heading -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <h2>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="@id">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a id="{@id}" name="{@id}">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates select="title" mode="print"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="not(@id)">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates select="title" mode="print"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </h2>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section body -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </div> <!-- /.section -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg </xsl:template>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- /section -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- handle subsections (lower level headings) -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template match="section/section">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section heading -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <h3>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="@id">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a id="{@id}" name="{@id}">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates select="title" mode="print"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="not(@id)">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates select="title" mode="print"/>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg </xsl:if>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg </h3>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section body -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:template>
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <!-- /section/section -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- handle subsubsections (h4) -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <xsl:template match="section/section/section">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section heading -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <h4>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="@id">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <a id="{@id}" name="{@id}">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates select="title" mode="print"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </a>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:if test="not(@id)">
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <xsl:apply-templates select="title" mode="print"/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:if>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </h4>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- Section body -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:apply-templates/>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes </xsl:template>
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- /section/section/section -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- section nesting > h4 is not supported for now -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <!-- -->
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:template match="section/section/section/section">
3c937b528ca923d5b51e63def9f888af4a77bb40bnicholes <xsl:message terminate="yes">
ac7985784d08a3655291f24f711812b4d8b1cbcffuankg <xsl:text>FATAL: exceeding maximum section nesting level.
Perhaps you should consider to split your document into
several ones...
</xsl:text>
</xsl:message>
</xsl:template>
<!-- /section/section/section/section -->
<!-- -->
<!-- (sub)section titles -->
<!-- -->
<xsl:template match="section/title" mode="print">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="section/title">
<!-- Don't print the title twice -->
</xsl:template>
<!-- /section/title -->
<!-- -->
<!-- generate section index -->
<!-- -->
<xsl:template match="section" mode="index">
<xsl:if test="@id">
<li>
<img src="{$path}/images/down.gif" alt="" />
<xsl:text> </xsl:text>
<a href="#{@id}">
<xsl:apply-templates select="title" mode="print"/>
</a>
</li>
</xsl:if>
<xsl:if test="not(@id)">
<li>
<img src="{$path}/images/down.gif" alt="" />
<xsl:text> </xsl:text>
<xsl:apply-templates select="title" mode="print"/>
<!-- nested sections -->
<!-- NOT FOR NOW -->
<!--
<xsl:if test="section">
<ul>
<xsl:apply-templates select="section" mode="index"/>
</ul>
</xsl:if>
-->
</li>
</xsl:if>
</xsl:template>
<!-- /section index -->
<!-- -->
<!-- docs super menu -->
<!-- -->
<xsl:template name="super-menu">
<p class="menu">
<a href="{$path}/mod/">
<xsl:value-of select="$messages/message[@name='modules']"/>
</a>
<xsl:text> | </xsl:text>
<a href="{$path}/mod/directives.html">
<xsl:value-of select="$messages/message[@name='directives']"/>
</a>
<xsl:text> | </xsl:text>
<a href="{$path}/faq/">
<xsl:value-of select="$messages/message[@name='faq']"/>
</a>
<xsl:text> | </xsl:text>
<a href="{$path}/glossary.html">
<xsl:value-of select="$messages/message[@name='glossary']"/>
</a>
<xsl:text> | </xsl:text>
<a href="{$path}/sitemap.html">
<xsl:value-of select="$messages/message[@name='sitemap']"/>
</a>
</p>
</xsl:template>
<!-- /super-menu -->
<!-- -->
<!-- <example> -->
<!-- iterate over *all* nodes; bare text and other -->
<!-- inline stuff is wrapped into <p><code>, block -->
<!-- level elements (defined in $blockelements) are -->
<!-- applied "as is" -->
<!-- -->
<xsl:variable name="blocks"
select="concat(' ', normalize-space($blockelements), ' ')"/>
<xsl:template match="example">
<div class="example">
<xsl:apply-templates select="title" mode="print"/>
<xsl:for-each select="/node()">
<xsl:variable name="is-block-node" select="boolean(contains($blocks, concat(' ',local-name(),' ')))"/>
<xsl:variable name="bb" select="count(preceding-sibling::*[contains($blocks,concat(' ',local-name(),' '))])"/>
<xsl:if test="$is-block-node or position()=last()">
<xsl:variable name="content">
<xsl:apply-templates select="preceding-sibling::node()[count(preceding-sibling::*[contains($blocks,concat(' ',local-name(),' '))]) &gt;= $bb]"/>
<xsl:apply-templates select="self::node()[not($is-block-node)]"/>
</xsl:variable>
<!-- apply bare text only, if it's not only \s or empty -->
<xsl:if test="normalize-space($content) != ''">
<p><code>
<xsl:copy-of select="$content"/>
</code></p>
</xsl:if>
<xsl:apply-templates select="self::node()[$is-block-node]"/>
</xsl:if>
</xsl:for-each>
<!-- /node() -->
</div> <!-- /.example -->
</xsl:template>
<!-- /example -->
<!-- -->
<!-- example/title -->
<!-- -->
<xsl:template match="example/title" mode="print">
<h3>
<xsl:apply-templates/>
</h3>
</xsl:template>
<xsl:template match="example/title">
<!-- don't print twice -->
</xsl:template>
<!-- /example/title -->
<!-- -->
<!-- indent -->
<!-- -->
<xsl:template match="indent">
<span class="indent">
<xsl:apply-templates/>
</span>
</xsl:template>
<!-- /indent -->
<!-- -->
<!-- <note> -->
<!-- Notes are placed in a table. Uses different back- -->
<!-- ground colors, depending on type of note. -->
<!-- -->
<xsl:template match="note">
<xsl:choose>
<xsl:when test="@type='warning'">
<div class="warning">
<xsl:apply-templates/>
</div>
</xsl:when>
<xsl:otherwise>
<div class="note">
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /note -->
<!-- -->
<!-- <note><title> -->
<!-- -->
<xsl:template match="note/title">
<h3>
<xsl:apply-templates/>
</h3>
</xsl:template>
<!-- /note/title -->
<!-- -->
<!-- <directive> -->
<!-- Inserts link to another directive, which might be -->
<!-- in another module. References are converted into -->
<!-- lower case. -->
<!-- -->
<xsl:template match="directive" name="directive">
<code class="directive">
<xsl:if test="@module">
<xsl:variable name="lowerdirective" select="translate(., $uppercase, $lowercase)"/>
<xsl:choose>
<xsl:when test="$in-modulesynopsis = '1' and @module = /modulesynopsis/name">
<a href="#{$lowerdirective}">
<xsl:if test="@type='section'">&lt;</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="@type='section'">&gt;</xsl:if>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="obs_">
<xsl:if test="@status = 'obsolete'">obs_</xsl:if>
</xsl:variable>
<a href="{$path}/mod/{$obs_}{@module}.html#{$lowerdirective}">
<xsl:if test="@type='section'">&lt;</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="@type='section'">&gt;</xsl:if>
</a>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="not(@module)">
<xsl:if test="@type='section'">&lt;</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="@type='section'">&gt;</xsl:if>
</xsl:if>
</code>
</xsl:template>
<!-- /directive -->
<!-- -->
<!-- <module> -->
<!-- Inserts a link to refereed module -->
<!-- -->
<xsl:template match="module" name="module">
<xsl:variable name="obs_">
<xsl:if test="@status = 'obsolete'">obs_</xsl:if>
</xsl:variable>
<code class="module">
<a href="{$path}/mod/{$obs_}{.}.html">
<xsl:value-of select="."/>
</a>
</code>
</xsl:template>
<!-- /module -->
<!-- -->
<!-- <related> -->
<!-- -->
<xsl:template match="related">
<table class="related">
<tr>
<th>
<xsl:value-of select="$messages/message[@name='relatedmodules']"/>
</th>
<th>
<xsl:value-of select="$messages/message[@name='relateddirectives']"/>
</th>
</tr>
<tr>
<td>
<xsl:if test="count(modulelist/*) &gt; 0">
<ul>
<xsl:apply-templates select="modulelist"/>
</ul>
</xsl:if>
</td>
<td>
<xsl:if test="count(directivelist/*) &gt; 0">
<ul>
<xsl:apply-templates select="directivelist"/>
</ul>
</xsl:if>
</td>
</tr>
</table>
</xsl:template>
<!-- /related -->
<xsl:template match="related/modulelist">
<xsl:for-each select="module">
<li>
<xsl:call-template name="module"/>
</li>
</xsl:for-each>
</xsl:template>
<xsl:template match="related/directivelist">
<xsl:for-each select="directive">
<li>
<xsl:call-template name="directive"/>
</li>
</xsl:for-each>
</xsl:template>
<!-- -->
<!-- <table> -->
<!-- -->
<xsl:template match="table">
<xsl:variable name="content"><xsl:choose>
<xsl:when test="@style = 'zebra'">
<xsl:for-each select="tr">
<!-- catch content -->
<xsl:variable name="current">
<xsl:apply-templates />
</xsl:variable>
<!-- header line -->
<xsl:if test="count(td) = 0">
<tr class="header"><xsl:copy-of select="$current" /></tr>
</xsl:if>
<!-- data line -->
<xsl:if test="count(td) &gt; 0">
<xsl:variable name="offset" select="count(preceding-sibling::*[count(td) = 0]) mod 2" />
<xsl:if test="position() mod 2 = $offset">
<tr class="odd"><xsl:copy-of select="$current" /></tr>
</xsl:if>
<xsl:if test="position() mod 2 != $offset">
<tr><xsl:copy-of select="$current" /></tr>
</xsl:if>
</xsl:if>
<xsl:text>
</xsl:text> <!-- insert line break -->
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise></xsl:choose>
</xsl:variable>
<xsl:if test="@border">
<table class="bordered">
<xsl:copy-of select="$content" />
</table>
</xsl:if>
<xsl:if test="not(@border)">
<table>
<xsl:copy-of select="$content" />
</table>
</xsl:if>
</xsl:template>
<!-- /table border -->
<!-- -->
<!-- <ol type -->
<!-- -->
<xsl:template match="ol">
<xsl:if test="@type = 'A'">
<ol class="up-A">
<xsl:apply-templates/>
</ol>
</xsl:if>
<xsl:if test="not(@type)">
<ol>
<xsl:apply-templates/>
</ol>
</xsl:if>
</xsl:template>
<!-- /ol type -->
<!-- -->
<!-- <summary> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="summary">
<xsl:apply-templates/>
</xsl:template>
<!-- /summary -->
<!-- -->
<!-- <description> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="description">
<xsl:apply-templates/>
</xsl:template>
<!-- /description -->
<!-- -->
<!-- <hint> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="hint">
<xsl:apply-templates/>
</xsl:template>
<!-- /description -->
<!-- -->
<!-- <usage> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="usage">
<xsl:apply-templates/>
</xsl:template>
<!-- /usage -->
<!-- -->
<!-- <syntax> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="syntax">
<xsl:apply-templates/>
</xsl:template>
<!-- /syntax -->
<!-- -->
<!-- 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 -->
<!-- -->
<!-- Process everything else by just passing it through -->
<!-- -->
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()"/>
</xsl:copy>
</xsl:template>
<!-- -->
<!-- create a letter bar -->
<!-- used in several documents -->
<!-- -->
<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)}">
<xsl:text>&nbsp;</xsl:text>
<xsl:value-of select="substring($letters,1,1)"/>
<xsl:text>&nbsp;</xsl:text>
</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>
<!-- -->
<!-- template(s) for collecting all start letters -->
<!-- of directives -->
<!-- used in several documents -->
<!-- -->
<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>
<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="$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>
</xsl:stylesheet>