]> granicus.if.org Git - apache/commitdiff
LaTeX:
authorJoshua Slive <slive@apache.org>
Thu, 12 Jun 2003 15:12:47 +0000 (15:12 +0000)
committerJoshua Slive <slive@apache.org>
Thu, 12 Jun 2003 15:12:47 +0000 (15:12 +0000)
- Add the moduleindex
- Add borders where appropriate to tables
- Include table headers (but don't style them properly yet)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100223 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/style/latex/html.xsl
docs/manual/style/latex/latex.xsl
docs/manual/style/latex/moduleindex.xsl [new file with mode: 0644]

index 6a532067985798da5fe45695a5e4bee7edd5424b..67a6465070cb90d1972d0e4d0102abdf658b2bba 100644 (file)
@@ -118,32 +118,42 @@ interpreted in pre -->
 <!-- XXX: We need to deal with table headers -->
 
 <xsl:template match="table">
-<xsl:text>\begin{tabular}{</xsl:text>
+<xsl:text>\fbox{\begin{tabular}{</xsl:text>
 <xsl:choose>
 <xsl:when test="columnspec">
   <xsl:for-each select="columnspec/column">
     <xsl:text>l</xsl:text>
+    <xsl:if test="../../@border and not(position()=last())">
+      <xsl:text>|</xsl:text>
+    </xsl:if>
   </xsl:for-each>
 </xsl:when>
 <xsl:otherwise>
   <xsl:for-each select="tr[1]/*">
     <xsl:text>l</xsl:text>
+    <xsl:if test="../../@border and not(position()=last())">
+      <xsl:text>|</xsl:text>
+    </xsl:if>
   </xsl:for-each>
 </xsl:otherwise>
 </xsl:choose>
 <xsl:text>}</xsl:text>
 <xsl:apply-templates select="tr"/>
-<xsl:text>\end{tabular}
+<xsl:text>\end{tabular}}
 </xsl:text>
 </xsl:template>
 
 <xsl:template match="tr">
-  <xsl:apply-templates select="td"/>
-  <xsl:text>\\
+  <xsl:apply-templates select="td|th"/>
+  <xsl:text>\\</xsl:text>
+  <xsl:if test="../@border and not(position()=last())">
+    <xsl:text>\hline</xsl:text>
+  </xsl:if>
+  <xsl:text>
 </xsl:text>
 </xsl:template>
 
-<xsl:template match="td">
+<xsl:template match="td|th">
     <xsl:variable name="pos" select="position()"/>
     <xsl:text>\begin{minipage}[t]{</xsl:text>
     <xsl:choose>
@@ -203,7 +213,7 @@ interpreted in pre -->
       <xsl:text>\href{</xsl:text>
       <xsl:value-of select="@href"/>
       <xsl:text>}{</xsl:text>
-    <xsl:call-template name="htescape">
+    <xsl:call-template name="ltescape">
       <xsl:with-param name="string" select="@href"/>
     </xsl:call-template>
     <xsl:text>}}</xsl:text>
index 59fe4753bcc884d6517de945dc83e9e95d46d67e..c4a4558331f91aa4b66bd2fd9f08917d53460ba5 100644 (file)
@@ -16,6 +16,7 @@
 <xsl:include href="common.xsl" />
 <xsl:include href="html.xsl" />
 <xsl:include href="synopsis.xsl" />
+<xsl:include href="moduleindex.xsl" />
 
 <xsl:template match="sitemap">
 <xsl:text>
 
 </xsl:template>
 
-
 </xsl:stylesheet>
diff --git a/docs/manual/style/latex/moduleindex.xsl b/docs/manual/style/latex/moduleindex.xsl
new file mode 100644 (file)
index 0000000..ee9cc68
--- /dev/null
@@ -0,0 +1,269 @@
+<?xml version="1.0"?><!--
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ *    not be used to endorse or promote products derived from this
+ *    software without prior written permission. For written
+ *    permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ *    nor may "Apache" appear in their name, without prior written
+ *    permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */ -->
+<xsl:stylesheet version="1.0"
+              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                  xmlns="http://www.w3.org/1999/xhtml">
+
+<!-- ==================================================================== -->
+<!-- <moduleindex>                                                        -->
+<!-- Builds the moduleindex page                                          -->
+<!-- ==================================================================== -->
+<xsl:template match="moduleindex">
+
+  <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" /> 
+
+  <xsl:text>\section{</xsl:text><xsl:apply-templates select="title"/>
+  <xsl:text>}</xsl:text>
+  <xsl:text>\label{</xsl:text>
+  <xsl:value-of select="$metafile/path"/>
+  <xsl:value-of select="$metafile/basename"/>
+  <xsl:text>}
+</xsl:text>
+
+  <xsl:apply-templates select="summary"/>
+
+   <xsl:if test="seealso">
+   <xsl:text>\medskip\noindent\textbf{</xsl:text>
+   <xsl:value-of select="$messages/message[@name='seealso']" />
+   <xsl:text>}
+   \begin{itemize}</xsl:text>
+   <xsl:for-each select="seealso">
+     <xsl:text>\item </xsl:text><xsl:apply-templates />
+   </xsl:for-each>
+   \end{itemize}
+   </xsl:if>
+
+
+   <xsl:text>\subsection*{</xsl:text>
+   <xsl:value-of select="$messages/message[@name='corefeatures']" />
+   <xsl:text>}
+
+\begin{description}
+\item[</xsl:text>
+    <xsl:apply-templates select="document(modulefilelist/modulefile
+                              [starts-with(., 'core.xml')])
+                              /modulesynopsis/name"/>
+    <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
+    <xsl:value-of select="document(modulefilelist/modulefile
+                              [starts-with(., 'core.xml')])
+                              /modulesynopsis/name"/>
+    <xsl:text>}) </xsl:text>
+
+    <xsl:apply-templates select="document(modulefilelist/modulefile
+                                 [starts-with(., 'core.xml')])
+                                 /modulesynopsis/description" />
+
+    <xsl:text>
+\item[</xsl:text>
+
+    <xsl:apply-templates  select="document(modulefilelist/modulefile
+                                  [starts-with(., 'mpm_common.xml')])
+                                  /modulesynopsis/name" />
+    <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
+    <xsl:value-of select="document(modulefilelist/modulefile
+                                   [starts-with(., 'mpm_common.xml')])
+                                   /modulesynopsis/name"/>
+    <xsl:text>}) </xsl:text>
+    <xsl:apply-templates select="document(modulefilelist/modulefile
+                                         [starts-with(., 'mpm_common.xml')])
+                                         /modulesynopsis/description" />
+
+
+
+    <!-- and now the remaining MPMs -->
+    <xsl:variable name="mpmmodules"
+         select="document(modulefilelist/modulefile)
+                 /modulesynopsis[status='MPM' and name != 'mpm_common']" />
+    <xsl:variable name="translist">
+      <xsl:call-template name="module-translist">
+         <xsl:with-param name="modules" select="$mpmmodules" />
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:for-each select="$mpmmodules">
+      <xsl:sort select="substring-before(substring-after($translist,
+                  concat('- ', translate(normalize-space(name), $lowercase,
+                  $uppercase), ' ')), ' -')" />
+
+      <xsl:text>
+\item[</xsl:text>
+      <xsl:apply-templates select="name"/>
+      <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
+      <xsl:value-of select="name"/>
+      <xsl:text>}) </xsl:text>
+
+      <xsl:apply-templates select="description" />
+
+    </xsl:for-each>
+
+    <xsl:text>\end{description}
+
+</xsl:text>
+
+    <!-- /core section -->
+
+    <xsl:text>\section*{</xsl:text>
+    <xsl:value-of select="$messages/message[@name='othermodules']" />
+    <xsl:text>}
+\begin{description}
+</xsl:text>
+            
+    <xsl:variable name="modules"
+         select="document(modulefilelist/modulefile)
+                 /modulesynopsis[status!='MPM' and status!='Core']" />
+
+    <xsl:call-template name="mindex-of-letter">
+       <xsl:with-param name="modules" select="$modules" />
+    </xsl:call-template>
+
+    <xsl:text>\end{description}
+</xsl:text>
+</xsl:template> 
+<!-- /moduleindex -->
+
+
+<!-- ==================================================================== -->
+<!-- the working horse. builds list items of all modules starting with    -->
+<!-- one letter when done, it calls itself to catch the next letter       -->
+<!-- ==================================================================== -->
+<xsl:template name="mindex-of-letter">
+<xsl:param name="modules"/>
+
+<xsl:variable name="translist">
+    <xsl:call-template name="module-translist">
+        <xsl:with-param name="modules" select="$modules" />
+    </xsl:call-template>
+</xsl:variable>
+
+<xsl:for-each select="$modules">
+<xsl:sort
+    select="substring-before(substring-after($translist, concat('- ',
+        translate(normalize-space(name),$lowercase,$uppercase), ' ')), ' -')" />
+
+<xsl:text>
+\item[</xsl:text>
+<xsl:apply-templates select="name"/>
+<xsl:text>] (p.\ \pageref{/mod/</xsl:text>
+<xsl:value-of select="name"/>
+<xsl:text>}) </xsl:text>
+
+        <xsl:apply-templates select="description" />
+
+</xsl:for-each> <!-- /directives -->
+
+</xsl:template>
+<!-- /mindex-of-letter -->
+
+<!-- ==================================================================== -->
+<!-- define module name translations for sorting                          -->
+<!--                                                                      -->
+<!-- it's a kind of a hack...                                             -->
+<!-- we build a string that contains the following data:                  -->
+<!-- "- modulename sortname - modulename sortname - ..."                  -->
+<!-- (with all data in uppercase)                                         -->
+<!--                                                                      -->
+<!-- So, the translation from modulename to sortname can be done with the -->
+<!-- expression below:                                                    -->
+<!--
+       substring-before(
+           substring-after($translist, 
+                           concat('- ', translate(modulename,
+                                                  $lowercase, $uppercase),
+                                  ' ')
+                           ),
+           ' -')
+                                                                          -->
+<!-- ==================================================================== -->
+<xsl:template name="module-translist">
+<xsl:param name="modules" />
+
+<xsl:text>-</xsl:text>
+<xsl:for-each select="$modules">
+    <xsl:variable name="sname" select="translate(normalize-space(name),
+                                       $lowercase, $uppercase)" />
+
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$sname" />
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="module-translatename">
+        <xsl:with-param name="name" select="$sname" />
+    </xsl:call-template>
+    <xsl:text> -</xsl:text>
+</xsl:for-each>
+</xsl:template>
+<!-- /module-translist -->
+
+<xsl:template name="module-translatename">
+<xsl:param name="name" />
+
+<xsl:variable name="sname" select="translate($name, $lowercase, $uppercase)" />
+
+<xsl:choose>
+<xsl:when test="starts-with($sname, 'MOD_') or starts-with($sname, 'MPM_')">
+    <xsl:value-of select="substring($name, 5)" />
+</xsl:when>
+
+<xsl:when test="starts-with($sname, 'MPMT_')">
+    <xsl:value-of select="substring($name, 6)" />
+</xsl:when>
+
+<xsl:otherwise>
+    <xsl:value-of select="$name" />
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+<!-- /module-translatename -->
+
+</xsl:stylesheet>