moduleindex.xsl revision a7835c7a8cf86045fdaee65dc2839bfe6314fb1e
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end<?xml version="1.0"?>
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end<!--
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end Copyright 2003-2004 Apache Software Foundation
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end Licensed under the Apache License, Version 2.0 (the "License");
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end you may not use this file except in compliance with the License.
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end You may obtain a copy of the License at
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end http://www.apache.org/licenses/LICENSE-2.0
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end Unless required by applicable law or agreed to in writing, software
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end distributed under the License is distributed on an "AS IS" BASIS,
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end See the License for the specific language governing permissions and
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end limitations under the License.
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end-->
a7835c7a8cf86045fdaee65dc2839bfe6314fb1end
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:stylesheet version="1.0"
87ea898bcffe2ef490e833dc246a1cc0465d783fslive xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
87ea898bcffe2ef490e833dc246a1cc0465d783fslive xmlns="http://www.w3.org/1999/xhtml">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- <moduleindex> -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- Builds the moduleindex page -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:template match="moduleindex">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
1cb160a981947e75a8353da3fe40a653aa87100eslive <xsl:call-template name="section-title"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="summary"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
1cb160a981947e75a8353da3fe40a653aa87100eslive <xsl:call-template name="seealso"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>\subsection*{</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="$messages/message[@name='corefeatures']" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\begin{description}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\item[</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'core.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'core.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>}) </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'core.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/description" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\item[</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'mpm_common.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/name" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'mpm_common.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>}) </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="document(modulefilelist/modulefile
87ea898bcffe2ef490e833dc246a1cc0465d783fslive [starts-with(., 'mpm_common.xml')])
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis/description" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <!-- and now the remaining MPMs -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:variable name="mpmmodules"
87ea898bcffe2ef490e833dc246a1cc0465d783fslive select="document(modulefilelist/modulefile)
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis[status='MPM' and name != 'mpm_common']" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:variable name="translist">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:call-template name="module-translist">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:with-param name="modules" select="$mpmmodules" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:call-template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:variable>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:for-each select="$mpmmodules">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:sort select="substring-before(substring-after($translist,
87ea898bcffe2ef490e833dc246a1cc0465d783fslive concat('- ', translate(normalize-space(name), $lowercase,
87ea898bcffe2ef490e833dc246a1cc0465d783fslive $uppercase), ' ')), ' -')" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\item[</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>}) </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="description" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:for-each>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>\end{description}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <!-- /core section -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>\section*{</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="$messages/message[@name='othermodules']" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\begin{description}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:variable name="modules"
87ea898bcffe2ef490e833dc246a1cc0465d783fslive select="document(modulefilelist/modulefile)
87ea898bcffe2ef490e833dc246a1cc0465d783fslive /modulesynopsis[status!='MPM' and status!='Core']" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:call-template name="mindex-of-letter">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:with-param name="modules" select="$modules" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:call-template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text>\end{description}
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- /moduleindex -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- the working horse. builds list items of all modules starting with -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- one letter when done, it calls itself to catch the next letter -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:template name="mindex-of-letter">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:param name="modules"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:variable name="translist">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:call-template name="module-translist">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:with-param name="modules" select="$modules" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:call-template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:variable>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:for-each select="$modules">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:sort
87ea898bcffe2ef490e833dc246a1cc0465d783fslive select="substring-before(substring-after($translist, concat('- ',
87ea898bcffe2ef490e833dc246a1cc0465d783fslive translate(normalize-space(name),$lowercase,$uppercase), ' ')), ' -')" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive\item[</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:apply-templates select="name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:text>] (p.\ \pageref{/mod/</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:value-of select="name"/>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:text>}) </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:apply-templates select="description" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:for-each> <!-- /directives -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- /mindex-of-letter -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- define module name translations for sorting -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- it's a kind of a hack... -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- we build a string that contains the following data: -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- "- modulename sortname - modulename sortname - ..." -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- (with all data in uppercase) -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- So, the translation from modulename to sortname can be done with the -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- expression below: -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!--
87ea898bcffe2ef490e833dc246a1cc0465d783fslive substring-before(
87ea898bcffe2ef490e833dc246a1cc0465d783fslive substring-after($translist,
87ea898bcffe2ef490e833dc246a1cc0465d783fslive concat('- ', translate(modulename,
87ea898bcffe2ef490e833dc246a1cc0465d783fslive $lowercase, $uppercase),
87ea898bcffe2ef490e833dc246a1cc0465d783fslive ' ')
87ea898bcffe2ef490e833dc246a1cc0465d783fslive ),
87ea898bcffe2ef490e833dc246a1cc0465d783fslive ' -')
87ea898bcffe2ef490e833dc246a1cc0465d783fslive -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- ==================================================================== -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:template name="module-translist">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:param name="modules" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:text>-</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:for-each select="$modules">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:variable name="sname" select="translate(normalize-space(name),
87ea898bcffe2ef490e833dc246a1cc0465d783fslive $lowercase, $uppercase)" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text> </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="$sname" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text> </xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:call-template name="module-translatename">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:with-param name="name" select="$sname" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive </xsl:call-template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:text> -</xsl:text>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:for-each>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- /module-translist -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:template name="module-translatename">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:param name="name" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:variable name="sname" select="translate($name, $lowercase, $uppercase)" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:choose>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:when test="starts-with($sname, 'MOD_') or starts-with($sname, 'MPM_')">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="substring($name, 5)" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:when>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:when test="starts-with($sname, 'MPMT_')">
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="substring($name, 6)" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:when>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<xsl:otherwise>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive <xsl:value-of select="$name" />
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:otherwise>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:choose>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:template>
87ea898bcffe2ef490e833dc246a1cc0465d783fslive<!-- /module-translatename -->
87ea898bcffe2ef490e833dc246a1cc0465d783fslive
87ea898bcffe2ef490e833dc246a1cc0465d783fslive</xsl:stylesheet>