]> granicus.if.org Git - apache/commitdiff
LaTeX:
authorJoshua Slive <slive@apache.org>
Thu, 19 Jun 2003 18:36:06 +0000 (18:36 +0000)
committerJoshua Slive <slive@apache.org>
Thu, 19 Jun 2003 18:36:06 +0000 (18:36 +0000)
- Add transformations of quickreference and faq.

- Move <seealso> and the titles to their own templates to avoid
repeating code.

- Fix external directives.

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

docs/manual/style/latex/TODO
docs/manual/style/latex/common.xsl
docs/manual/style/latex/directiveindex.xsl
docs/manual/style/latex/faq.xsl [new file with mode: 0644]
docs/manual/style/latex/html.xsl
docs/manual/style/latex/latex.xsl
docs/manual/style/latex/manualpage.xsl
docs/manual/style/latex/moduleindex.xsl
docs/manual/style/latex/quickreference.xsl [new file with mode: 0644]
docs/manual/style/latex/synopsis.xsl

index a7904553f7708d61d1583d3d275b4abdf4d269b2..2d335e0cb0a704aebf200923117a82860514305b 100644 (file)
@@ -1,12 +1,5 @@
 Some things that need to be done with the LaTeX transforms:
 
-- Finish special pages:
-  * quick reference
-  * faq
-  [This is a good job for someone who wants to get familiar with LaTeX,
-   since you can just take the existing LaTeX as an example, and combine
-   it with the xslt stuff under style/xsl/.]
-
 - Tables
   Add <columnspec> to xml files.
 
@@ -21,9 +14,6 @@ Some things that need to be done with the LaTeX transforms:
   not be feasible for us, in which case we could simply replace
   " with \texttt{"} or something, so that the quotes are all straight.
 
-- Fix page references on "external" directives
-  (<directivesynopsis location=...)
-
 - Hundreds of other little problems with presentation, cross-referencing,
   etc.
 
@@ -37,4 +27,6 @@ Some things that need to be done with the LaTeX transforms:
 
 - Reduce the size of the pdf (both bytes and pages) in any way possible.
 
+- Speed up the XSLT tranform.
+
 - Translations.
\ No newline at end of file
index 123102a9ed434c9e32155ef340c74a53ee2270c4..c7a46856894809f2e76fa4529334c653d5e03251 100644 (file)
@@ -57,15 +57,15 @@ select="$metafile/basename"/>
 <!-- ==================================================================== -->
 <!-- <example>                                                            -->
 <!-- ==================================================================== -->
-
+<!-- verbatim inside of fbox doesn't work for some reason -->
 <xsl:template match="example">
 <xsl:text>\par\smallskip\begin{center}</xsl:text>
 <xsl:if test="not(pre)"><xsl:text>\fbox{</xsl:text></xsl:if>
 <xsl:text>\begin{minipage}{.8\textwidth}\begin{flushleft}</xsl:text>
 <xsl:apply-templates select="title" mode="print" />
-<xsl:if test="not(pre)"><xsl:text>{\ttfamily\small </xsl:text></xsl:if>
+<xsl:text>{\ttfamily\small </xsl:text>
 <xsl:text>\noindent </xsl:text><xsl:apply-templates/>
-<xsl:if test="not(pre)"><xsl:text>}</xsl:text></xsl:if>
+<xsl:text>}</xsl:text>
 <xsl:text>\end{flushleft}\end{minipage}</xsl:text>
 <xsl:if test="not(pre)"><xsl:text>}</xsl:text></xsl:if>
 <xsl:text>\end{center}\par\smallskip</xsl:text>
@@ -188,4 +188,39 @@ select="$metafile/basename"/>
 </xsl:text>
 </xsl:template>
 
-</xsl:stylesheet>
\ No newline at end of file
+
+<!-- ==================================================================== -->
+<!-- <seealso>                                                            -->
+<!-- ==================================================================== -->
+<xsl:template name="seealso">
+     <xsl:if test="seealso">
+       <xsl:text>\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:text>
+</xsl:text>
+        </xsl:for-each>
+<xsl:text>\end{itemize}</xsl:text>
+     </xsl:if>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+<!-- section-title                                                        -->
+<!-- ==================================================================== -->
+<xsl:template name="section-title">
+<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:template>
+
+</xsl:stylesheet>
+
index 1a9f0240f6c356e15e7cf13abe2d5c78d069971b..15ac30fe9fc400e8828e94857e37b463bfb1867d 100644 (file)
                 /directivesynopsis[not(@location)]" />
 
 
-  <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" /> 
+  <xsl:call-template name="section-title"/>
 
-  <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:apply-templates select="summary" />
+  <xsl:call-template name="seealso"/>
 
   <xsl:text>\begin{itemize}
 </xsl:text>
diff --git a/docs/manual/style/latex/faq.xsl b/docs/manual/style/latex/faq.xsl
new file mode 100644 (file)
index 0000000..7faa9ee
--- /dev/null
@@ -0,0 +1,78 @@
+<?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/>.
+ */ -->
+<!DOCTYPE xsl:stylesheet [
+    <!ENTITY lf SYSTEM "util/lf.xml">
+]>
+<xsl:stylesheet version="1.0"
+              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                  xmlns="http://www.w3.org/1999/xhtml">
+
+<!-- ==================================================================== -->
+<!-- <faq>                                                                -->
+<!-- Process an entire document into an HTML page                         -->
+<!-- ==================================================================== -->
+<xsl:template match="faq">
+
+<xsl:call-template name="section-title"/>
+
+<xsl:apply-templates select="summary"/>
+
+<xsl:call-template name="seealso"/>
+
+<xsl:apply-templates select="section"/>
+
+</xsl:template>
+<!-- /faq -->
+</xsl:stylesheet>
index 060a33127bb97ed209935dcbbdccf9028ce97984..c1a5b828ec84b3a173793906ef1909a81a93b79b 100644 (file)
@@ -170,7 +170,7 @@ interpreted in pre -->
       <xsl:value-of select=".95 div last()"/>
     </xsl:otherwise>
     </xsl:choose>
-    <xsl:text>\linewidth}\small </xsl:text>
+    <xsl:text>\textwidth}\small </xsl:text>
     <xsl:apply-templates/>
     <xsl:text>\end{minipage}</xsl:text>
     <xsl:if test="not(position()=last())">
@@ -189,7 +189,7 @@ interpreted in pre -->
       <xsl:value-of select=".95 div last()"/>
     </xsl:otherwise>
     </xsl:choose>
-    <xsl:text>\linewidth}\bfseries </xsl:text>
+    <xsl:text>\textwidth}\bfseries </xsl:text>
     <xsl:apply-templates/>
     <xsl:text>\end{minipage}</xsl:text>
     <xsl:if test="not(position()=last())">
index bf63297537253781fd7d8fd6a2f8f1385d8ea543..d54b6aca4a879975881dd54cb2f94744a2408e0e 100644 (file)
 <xsl:include href="synopsis.xsl" />
 <xsl:include href="moduleindex.xsl" />
 <xsl:include href="directiveindex.xsl" />
+<xsl:include href="faq.xsl" />
+<xsl:include href="quickreference.xsl" />
 
 <xsl:template match="sitemap">
 <xsl:text>
 \documentclass[11pt]{book}
 \usepackage{times}
+\usepackage{longtable}
 \usepackage{style/latex/atbeginend}
 %\usepackage[pdftex]{color}
-\usepackage[colorlinks=true,letterpaper=true]{hyperref}
+\usepackage[colorlinks=true,letterpaper=true,linkcolor=green,urlcolor=blue]{hyperref}
 
 % Let LaTeX be lenient about very-bad line wrapping.
 \tolerance=9999 
  </xsl:choose>
 </xsl:variable>
 
+<!-- The '[' and ']' characters don't, in general, need to be
+  escaped.  But there are times when it is ambiguous whether
+  [ is the beginning of an optional argument or a literal '['.
+  Hence, it is safer to protect the literal ones with {}. -->
 <xsl:variable name="result5">
  <xsl:choose>
  <xsl:when test="contains($result4, '[')">
index fbfc79a816743c61f552265c6eeef393a6ef4ea5..f5ca57c525d9f75f477e9a3ac719344632d52d49 100644 (file)
@@ -4,28 +4,12 @@
                   xmlns="http://www.w3.org/1999/xhtml">
 
 <xsl:template match="manualpage">
-<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:call-template name="section-title"/>
 
+<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:call-template name="seealso"/>
 
 <xsl:apply-templates select="section"/>
 </xsl:template>
index ee9cc6844d45542e495aa9ddf2f6ebeec5c21212..cab4a89205589ec177668e1ee072ed524d9e3c64 100644 (file)
 
   <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:call-template name="section-title"/>
 
   <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:call-template name="seealso"/>
 
    <xsl:text>\subsection*{</xsl:text>
    <xsl:value-of select="$messages/message[@name='corefeatures']" />
diff --git a/docs/manual/style/latex/quickreference.xsl b/docs/manual/style/latex/quickreference.xsl
new file mode 100644 (file)
index 0000000..62d6756
--- /dev/null
@@ -0,0 +1,175 @@
+<?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">
+
+<!-- ==================================================================== -->
+<!-- <quickreference>                                                     -->
+<!-- Builds the directive quickreference page                             -->
+<!-- ==================================================================== -->
+<xsl:template match="quickreference">
+
+  <xsl:call-template name="section-title"/>
+
+  <xsl:apply-templates select="summary"/>
+
+  <xsl:call-template name="seealso"/>
+
+  <xsl:apply-templates select="legend"/>
+
+  <xsl:variable name="directives"
+       select="document(modulefilelist/modulefile)
+         /modulesynopsis/directivesynopsis[not(@location)]" />
+
+  <xsl:text>\footnotesize
+</xsl:text>
+
+  <xsl:text>\begin{longtable}{p{.60\textwidth}p{.25\textwidth}ll}\hline
+</xsl:text>
+
+<xsl:for-each
+   select="$directives[translate(substring(normalize-space(name), 1,1),
+                                          $lowercase,$uppercase)]">
+<xsl:sort select="name" />
+
+   <xsl:text>\texttt{</xsl:text>
+   <xsl:apply-templates select="syntax" />
+   <xsl:text>}</xsl:text>
+   <xsl:text>&amp;</xsl:text>
+
+   <!-- 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) &gt; 0]) &gt; 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>
+
+     <xsl:call-template name="ltescape">
+        <xsl:with-param name="string">
+            <xsl:value-of select="substring(substring-after(concat($default,
+                                  ' '), name),1,20)" />
+        </xsl:with-param>
+      </xsl:call-template>
+
+      <xsl:if test="string-length(substring-after(concat($default, ' '),
+                name)) &gt; 20 or count(default[count(br) &gt; 0]) &gt; 0">
+         <xsl:text> +</xsl:text>
+      </xsl:if>
+
+      <xsl:text>&amp;</xsl:text>
+
+            <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:text>&amp;</xsl:text>
+            <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:choose>
+
+     <xsl:text>\\*
+</xsl:text>
+
+      <xsl:text>\multicolumn{4}{l}{\begin{minipage}[t]{.95\textwidth}</xsl:text>
+         <xsl:choose>
+         <xsl:when test="string-length(normalize-space(description)) &gt; 0">
+             <xsl:apply-templates select="description"/>
+         </xsl:when>
+         <xsl:otherwise>
+             <xsl:text>-</xsl:text>
+         </xsl:otherwise>
+         </xsl:choose>
+
+      <xsl:text>\hfill p.\ \pageref{/mod/</xsl:text>
+        <xsl:value-of select="../name"/> <xsl:text>:</xsl:text>
+        <xsl:value-of select="translate(name, $uppercase, $lowercase)"/>
+      <xsl:text>}</xsl:text>
+
+
+    <xsl:text>\end{minipage}} \\ \hline
+</xsl:text>
+
+  </xsl:for-each> <!-- /directives -->
+
+  <xsl:text>\end{longtable}
+\normalsize</xsl:text>
+
+</xsl:template>
+
+<xsl:template match="legend">
+<xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
index 395f5291e9958c5d809a4a79939dc968c4144556..6e84f97644f3f05808af2dfb88463a29aa9df438 100644 (file)
          <xsl:if test="@location">
            <xsl:variable name="lowerlocation"
             select="translate(@location, $uppercase, $lowercase)" />
-           <xsl:text> (p.\ \pageref{</xsl:text>
+           <xsl:text> (p.\ \pageref{/mod/</xsl:text>
            <xsl:value-of select="concat(translate(@location,$uppercase,$lowercase),':',translate(name,$uppercase,$lowercase))"/>
            <xsl:text>}) </xsl:text>
          </xsl:if>
      <xsl:text>
 </xsl:text>
 
-     <xsl:if test="seealso">
-       <xsl:text>\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:text>
-</xsl:text>
-        </xsl:for-each>
-<xsl:text>\end{itemize}</xsl:text>
-     </xsl:if>
+<xsl:call-template name="seealso"/>
 
      <!-- Sections of documentation about the module as a whole -->
        <xsl:apply-templates select="section" />
 
 <xsl:apply-templates select="usage" />
 
-<xsl:if test="seealso">
-<xsl:text>\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>
-<xsl:text>\end{itemize}
-</xsl:text>
-</xsl:if>
-
-</xsl:if>
+<xsl:call-template name="seealso"/>
 
+</xsl:if> <!-- /not(@location) -->
 </xsl:template>
 <!-- /directivesynopsis -->