Well, the index page finally goes xml. I've used mostly the xml format of 
the sitemap with a new xsl file (caused by the special requirements). 
Additionally I've made some minor layout changes for a better look & feel 
(thanks Kess for her suggestions).

Attached you'll find the patch against the existing files, the new 
indexpage.xsl and index.xml. The HTML result can be admired online:
<http://cvs.apache.org/~nd/manual/index.html.en>

Comments, further suggestions etc are welcome.

TIA, nd
-- 
>I have tried using ErrorDocument 401, but doesn't work.
                                           ^^^^^^^^^^^^^
Oh dear.  What does it do - lounge around on the couch all day drinking
beer and watching TV?            -- "Kash" und Alan J. Flavell in ciwsu

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE indexpage SYSTEM "./style/sitemap.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>

<indexpage>
<relativepath href="."/>
<parentdocument href="http://httpd.apache.org/docs-project/"; />

<title>Apache HTTP Server Version 2.1 Documentation</title>

<category id="release"><title>Release Notes</title>
    <page href="new_features_2_0.html">New features with Apache 2.0</page>
    <page href="upgrading.html">Upgrading to 2.0 from 1.3</page>
    <page href="LICENSE">Apache License</page>
</category>

<category id="manual"><title>Reference Manual</title>
    <page href="install.html">Compiling and Installing</page>
    <page href="invoking.html">Starting</page>
    <page href="stopping.html">Stopping or Restarting</page>
    <page href="mod/directives.html">Run-time Configuration Directives</page>
    <page href="mod/quickreference.html">Directive Quick-Reference</page>
    <page href="mod/">Modules</page>
    <page href="mpm.html">Multi-Processing Modules (MPMs)</page>
    <page href="filter.html">Filters</page>
    <page href="handler.html">Handlers</page>
    <page href="programs/">Server and Supporting Programs</page>
    <page href="glossary.html">Glossary</page>
</category>    

<category id="usersguide"><title>Users' Guide</title>
    <page href="bind.html">Binding</page>
    <page href="configuring.html">Configuration Files</page>
    <page href="sections.html">Configuration Sections</page>
    <page href="content-negotiation.html">Content Negotiation</page>
    <page href="dso.html">Dynamic Shared Objects (DSO)</page>
    <page href="env.html">Environment Variables</page>
    <page href="logs.html">Log Files</page>
    <page href="urlmapping.html">Mapping URLs to the Filesystem</page>
    <page href="misc/perf-tuning.html">Performance Tuning</page>
    <page href="misc/security_tips.html">Security Tips</page>
    <page href="server-wide.html">Server-Wide Configuration</page>
    <page href="ssl/">SSL/TLS Encryption</page>
    <page href="suexec.html">Suexec Execution for CGI</page>
    <page href="misc/rewriteguide.html">URL Rewriting Guide</page>
    <page href="vhosts/">Virtual Hosts</page>
</category>

<category id="howto"><title>How-To / Tutorials</title>
    <page href="howto/auth.html">Authentication, Authorization, and Access
    Control</page>
    <page href="howto/cgi.html">CGI: Dynamic Content</page>
    <page href="howto/htaccess.html">.htaccess files</page>
    <page href="howto/ssi.html">Server Side Includes (SSI)</page>
    <page href="howto/public_html.html">Per-user Web Directories
    (public_html)</page>
</category>

<category id="platform"><title>Platform Specific Notes</title>
    <page href="platform/windows.html">Microsoft Windows</page>
    <page href="platform/netware.html">Novell NetWare</page>
    <page href="platform/ebcdic.html">EBCDIC Port</page>
</category>

<category id="other"><title>Other Topics</title>
    <page href="faq/">Frequently Asked Questions</page>
    <page href="sitemap.html">Sitemap</page>
    <page href="developer/">Documentation for Developers</page>
    <page href="misc/">Other Notes</page>
</category>

</indexpage>

<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
<xsl:stylesheet version="1.0"
              xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                  xmlns="http://www.w3.org/1999/xhtml";>

  <!-- three columns, select were the particular categories shall be
       placed in. (order is irrelevant, they're placed in document order) -->

  <xsl:variable name="indexpage-column1" select="'
    release
    manual
  '"/>

  <xsl:variable name="indexpage-column2" select="'
    usersguide
  '"/>

  <xsl:variable name="indexpage-column3" select="'
    howto
    platform
    other
  '"/>

  <!--                                                    -->
  <!-- <indexpage>                                        -->
  <!-- Process an entire document into an HTML page       -->
  <!--                                                    -->
  <xsl:template match="/indexpage">
    <html xml:lang="{$messages/@lang}" lang="{$messages/@lang}">
      <xsl:call-template name="head"/>

<xsl:text>
</xsl:text> <!-- insert line break -->

      <body id="index-page">

<xsl:text>
</xsl:text> <!-- insert line break -->

        <xsl:call-template name="top"/>          

<xsl:text>
</xsl:text> <!-- insert line break -->

        <div id="page-content">
          <h1>
            <xsl:value-of select="title"/>
          </h1>

<xsl:text>
</xsl:text> <!-- insert line break -->

          <form method="post" action="http://search.apache.org/";><p>
            <input type="hidden" name="what" value="httpd.apache.org" />
            <input type="hidden" name="results" value="20" />
            <input type="hidden" name="version" value="2" />
            <input type="text" name="keyword" size="20" />
            <xsl:text> </xsl:text>
            <input type="submit" value="{$messages/[EMAIL PROTECTED]'search']}" 
/>
          </p></form>

<xsl:text>
</xsl:text> <!-- insert line break -->

          <table id="indextable">
            <tr>
              <td class="col1">
                <xsl:apply-templates
                    select="category[contains($indexpage-column1, @id)]"/>
              </td>
              <td>
                <xsl:apply-templates
                    select="category[contains($indexpage-column2, @id)]"/>
              </td>
              <td class="col3">
                <xsl:apply-templates
                    select="category[contains($indexpage-column3, @id)]"/>
              </td>
            </tr>
          </table>
        </div> <!-- /page-content -->

<xsl:text>
</xsl:text> <!-- insert line break -->

        <xsl:call-template name="bottom"/>

<xsl:text>
</xsl:text> <!-- insert line break -->

      </body>
    </html>
  </xsl:template>
  

  <!--                                                    -->
  <!-- category/page                                      -->
  <!--                                                    -->
  <xsl:template match="indexpage/category/page">
    <li>
      <xsl:if test="@separate='yes'">
        <xsl:attribute name="class">separate</xsl:attribute>
      </xsl:if>

      <xsl:if test="@href">
        <a href="[EMAIL PROTECTED]">
          <xsl:value-of select="."/>
        </a>
      </xsl:if>
      <xsl:if test="not(@href)">
        <xsl:value-of select="."/>
      </xsl:if>
    </li>

<xsl:text>
</xsl:text> <!-- insert line break -->

  </xsl:template>
  <!-- /category/page -->


  <!--                                                            -->
  <!-- Process a sitemap category                                 -->
  <!--                                                            -->
  <xsl:template match="indexpage/category">

    <div class="category">

      <!-- Section heading -->
      <h2>
        <xsl:if test="@id">
          <a id="[EMAIL PROTECTED]" name="[EMAIL PROTECTED]">
            <xsl:apply-templates select="title" mode="print"/>
          </a>
        </xsl:if>

        <xsl:if test="not(@id)">
          <xsl:apply-templates select="title" mode="print"/>
        </xsl:if>
      </h2>

<xsl:text>
</xsl:text> <!-- insert line break -->

      <!-- category body -->
      <ul>
        <xsl:apply-templates select="page"/>
      </ul>
      
<xsl:text>
</xsl:text> <!-- insert line break -->

    </div> <!-- /.section -->
  </xsl:template>
  <!-- /category -->

</xsl:stylesheet>

Index: manual/style/common.dtd
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/common.dtd,v
retrieving revision 1.14
diff -u -r1.14 common.dtd
--- manual/style/common.dtd     8 Jan 2003 07:09:03 -0000       1.14
+++ manual/style/common.dtd     6 Apr 2003 02:26:42 -0000
@@ -143,4 +143,12 @@
   width       CDATA   #IMPLIED >
 
 <!ELEMENT blockquote %Block;>
-<!ATTLIST blockquote cite CDATA #IMPLIED >
\ No newline at end of file
+<!ATTLIST blockquote cite CDATA #IMPLIED >
+
+<!-- The path to the root of the documentation from the current doc -->
+<!ELEMENT relativepath EMPTY>
+<!ATTLIST relativepath href CDATA #REQUIRED >
+
+<!-- The path and title of the parent document -->
+<!ELEMENT parentdocument (#PCDATA)>
+<!ATTLIST parentdocument href CDATA #REQUIRED >
Index: manual/style/manualpage.dtd
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/manualpage.dtd,v
retrieving revision 1.5
diff -u -r1.5 manualpage.dtd
--- manual/style/manualpage.dtd 12 Nov 2002 03:43:02 -0000      1.5
+++ manual/style/manualpage.dtd 6 Apr 2003 02:26:42 -0000
@@ -6,11 +6,3 @@
 <!-- <manualpage> is the root element -->
 <!ELEMENT manualpage (relativepath, parentdocument?, title, summary?,
 seealso*, section*)>
-
-<!-- The path to the root of the documentation from the current doc -->
-<!ELEMENT relativepath EMPTY>
-<!ATTLIST relativepath href CDATA #REQUIRED >
-
-<!-- The path and title of the parent document -->
-<!ELEMENT parentdocument (#PCDATA)>
-<!ATTLIST parentdocument href CDATA #REQUIRED >
Index: manual/style/sitemap.dtd
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/sitemap.dtd,v
retrieving revision 1.1
diff -u -r1.1 sitemap.dtd
--- manual/style/sitemap.dtd    10 Sep 2002 00:36:10 -0000      1.1
+++ manual/style/sitemap.dtd    6 Apr 2003 02:26:42 -0000
@@ -6,6 +6,9 @@
 <!-- <sitemap> is the root element -->
 <!ELEMENT sitemap (relativepath, title, summary?, seealso*, category*)>
 
+<!-- <indexpage> is another root element -->
+<!ELEMENT indexpage (relativepath, parentdocument, title, category*)>
+
 <!ELEMENT category (title, page*, modulefilelist? )>
 <!ATTLIST category id ID #IMPLIED>
 
@@ -15,8 +18,3 @@
 
 <!ELEMENT modulefilelist (modulefile*) >
 <!ELEMENT modulefile (#PCDATA) >
-
-<!-- The path to the root of the documentation from the current doc -->
-<!ELEMENT relativepath EMPTY>
-<!ATTLIST relativepath href CDATA #REQUIRED >
-
Index: manual/style/css/manual-loose-100pc.css
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/css/manual-loose-100pc.css,v
retrieving revision 1.5
diff -u -r1.5 manual-loose-100pc.css
--- manual/style/css/manual-loose-100pc.css     16 Oct 2002 06:45:21 -0000      
1.5
+++ manual/style/css/manual-loose-100pc.css     6 Apr 2003 02:26:42 -0000
@@ -38,6 +38,10 @@
     font-size: 1.2em;
 }
 
+.category h2 {
+    font-size: 1em;
+}
+
 h3 {
     font-size: 1.1em;
 }
Index: manual/style/css/manual-print.css
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/css/manual-print.css,v
retrieving revision 1.8
diff -u -r1.8 manual-print.css
--- manual/style/css/manual-print.css   4 Feb 2003 21:24:19 -0000       1.8
+++ manual/style/css/manual-print.css   6 Apr 2003 02:26:43 -0000
@@ -129,7 +129,8 @@
 }
 
 .section h2,
-.directive-section h2 {
+.directive-section h2,
+.category h2 {
     background-color: #fff;
     color: #000;
 }
Index: manual/style/css/manual.css
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/css/manual.css,v
retrieving revision 1.21
diff -u -r1.21 manual.css
--- manual/style/css/manual.css 3 Feb 2003 20:27:28 -0000       1.21
+++ manual/style/css/manual.css 6 Apr 2003 02:26:43 -0000
@@ -191,6 +191,12 @@
     color: #fff;
 }
 
+.category h2 {
+    background-color: #e5ecf3;
+    color: #405871;
+    font-size: 14px;
+}
+
 /* take care of <a name>s inside */
 h2 a,
 h2 a:hover,
@@ -363,6 +369,38 @@
     border: 1px solid #aaa;
 }
 
+/* index page layout table */
+/* ======================= */
+body#index-page div#page-content {
+    width: 100%; /* IE fun */
+}
+
+body[id]#index-page div#page-content {
+    width: auto; /* reasonable browsers. */
+}
+
+table#indextable {
+    width: 100%;
+    border-collapse: collapse;
+    border: 0 none;
+}
+
+table#indextable td {
+    width: 33.3%;
+    border-left: 1px solid #aaa;
+    padding-top: 0;
+    padding-bottom: 0;
+}
+
+table#indextable td.col1 {
+    border-left: 0 none;
+    padding-left: 0;
+}
+
+table#indextable td.col3 {
+    padding-right: 0;
+}
+
 /* mod/dir. overview table and quick reference  */
 /* ============================================ */
 table.module th,
@@ -530,6 +568,18 @@
     padding: 0;
 }
 
+/* indextable */
+/* ========== */
+table#indextable td ul {
+    list-style-type: none;
+    margin: 0 0 1em 0.5em;
+    padding: 0 0 0 0;
+}
+
+table#indextable td ul li {
+    margin-top: 0.3em;
+}
+
 /* sidebar                */
 /* ====================== */
 div#quickview li {
@@ -679,6 +729,14 @@
     padding-right: 30px;
 }
 
+/* unsqueeze on some pages... */
+body#index-page div#page-content {
+    margin-left: 30px;
+    margin-right: 0;
+    padding-right: 0;
+    padding-bottom: 1em;
+}
+
 /* in general */
 p {
     line-height: 1.3em;
@@ -790,7 +848,7 @@
 }
 
 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * quotations, indented paragraphs and figures
+ * quotations, indented paragraphs, forms and figures
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
 p.letters {
     margin: 1em 0 0 0;
@@ -836,6 +894,10 @@
 span.indent {
     padding-left: 1.5em;
     display: block;
+}
+
+#index-page form {
+    text-align: center;
 }
 
 p.figure {
Index: manual/style/lang/de.xml
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/lang/de.xml,v
retrieving revision 1.7
diff -u -r1.7 de.xml
--- manual/style/lang/de.xml    16 Jan 2003 02:37:07 -0000      1.7
+++ manual/style/lang/de.xml    6 Apr 2003 02:26:43 -0000
@@ -66,6 +66,7 @@
  <message name="apachetitle">- Apache HTTP Server</message>
  <message name="apachehttpserver">Apache HTTP Server Version 2.1</message>
  <message name="apachedocalt">[APACHE DOCUMENTATION]</message>
+ <message name="search">Suche</message> <!-- search button -->
  <message name="index">Index</message> <!-- deprecated -->
  <message name="home">Startseite</message> <!-- deprecated -->
 
Index: manual/style/lang/en.xml
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/lang/en.xml,v
retrieving revision 1.8
diff -u -r1.8 en.xml
--- manual/style/lang/en.xml    1 Jan 2003 02:35:18 -0000       1.8
+++ manual/style/lang/en.xml    6 Apr 2003 02:26:43 -0000
@@ -63,6 +63,7 @@
  <message name="apachetitle">- Apache HTTP Server</message>
  <message name="apachehttpserver">Apache HTTP Server Version 2.1</message>
  <message name="apachedocalt">[APACHE DOCUMENTATION]</message>
+ <message name="search">Search</message> <!-- search button -->
  <message name="index">Index</message> <!-- deprecated -->
  <message name="home">Home</message> <!-- deprecated -->
 
Index: manual/style/lang/ja.xml
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/lang/ja.xml,v
retrieving revision 1.7
diff -u -r1.7 ja.xml
--- manual/style/lang/ja.xml    5 Dec 2002 14:28:00 -0000       1.7
+++ manual/style/lang/ja.xml    6 Apr 2003 02:26:43 -0000
@@ -58,6 +58,7 @@
  <message name="apachetitle">- Apache HTTP $B%5!<%P(B</message>
  <message name="apachehttpserver">Apache HTTP $B%5!<%P(B $B%P!<%8%g%s(B 
2.1</message>
  <message name="apachedocalt">[APACHE DOCUMENTATION]</message>
+ <message name="search">Search</message> <!-- search button -->
  <message name="index">$B:w0z(B</message> <!-- deprecated -->
  <message name="home">$B%[!<%`(B</message> <!-- deprecated -->
 
Index: manual/style/lang/ru.xml
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/lang/ru.xml,v
retrieving revision 1.2
diff -u -r1.2 ru.xml
--- manual/style/lang/ru.xml    5 Dec 2002 14:28:00 -0000       1.2
+++ manual/style/lang/ru.xml    6 Apr 2003 02:26:43 -0000
@@ -52,6 +52,7 @@
  <message name="apachetitle">- HTTP ÓÅÒ×ÅÒ Apache</message>
  <message name="apachehttpserver">HTTP ÓÅÒ×ÅÒ Apache ÷ÅÒÓÉÑ 2.1</message>
  <message name="apachedocalt">[äïëõíåîôáãéñ APACHE]</message>
+ <message name="search">Search</message> <!-- search button -->
  <message name="index">ïÇÌÁ×ÌÅÎÉÅ</message> <!-- deprecated -->
  <message name="home">îÁ ÇÌÁ×ÎÕÀ ÓÔÒÁÎÉÃÕ</message> <!-- deprecated -->
 
Index: manual/style/xsl/common.xsl
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/xsl/common.xsl,v
retrieving revision 1.24
diff -u -r1.24 common.xsl
--- manual/style/xsl/common.xsl 16 Jan 2003 02:37:07 -0000      1.24
+++ manual/style/xsl/common.xsl 6 Apr 2003 02:26:43 -0000
@@ -39,6 +39,7 @@
   <xsl:include href="manualpage.xsl"/>
   <xsl:include href="synopsis.xsl"/>
   <xsl:include href="sitemap.xsl"/>
+  <xsl:include href="indexpage.xsl"/>
   <xsl:include href="quickreference.xsl"/>
 
   <!-- make sure, we set relative anchors
@@ -168,10 +169,12 @@
       <a href="http://httpd.apache.org/docs-project/";>
         <xsl:value-of select="$messages/[EMAIL PROTECTED]'documentation']"/>
       </a>
-      <xsl:text> &gt; </xsl:text>
-      <a href="{$path}/">
-        <xsl:value-of select="$messages/[EMAIL PROTECTED]'version']"/>
-      </a>
+      <xsl:if test="not(../indexpage)">
+        <xsl:text> &gt; </xsl:text>
+        <a href="{$path}/">
+          <xsl:value-of select="$messages/[EMAIL PROTECTED]'version']"/>
+        </a>
+      </xsl:if>
       <xsl:if test="../modulesynopsis or ../directiveindex or 
../quickreference">
         <xsl:text> &gt; </xsl:text>
         <a href="./">
Index: manual/style/xsl/sitemap.xsl
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/style/xsl/sitemap.xsl,v
retrieving revision 1.7
diff -u -r1.7 sitemap.xsl
--- manual/style/xsl/sitemap.xsl        22 Dec 2002 22:45:38 -0000      1.7
+++ manual/style/xsl/sitemap.xsl        6 Apr 2003 02:26:43 -0000
@@ -142,7 +142,7 @@
   <!--                                                    -->
   <!-- category/page                                      -->
   <!--                                                    -->
-  <xsl:template match="category/page">
+  <xsl:template match="sitemap/category/page">
     <li>
       <xsl:if test="@separate='yes'">
         <xsl:attribute name="class">separate</xsl:attribute>
@@ -168,7 +168,7 @@
   <!--                                                            -->
   <!-- Process a sitemap category                                 -->
   <!--                                                            -->
-  <xsl:template match="category">
+  <xsl:template match="sitemap/category">
 
     <xsl:call-template name="toplink"/>
 
@@ -212,7 +212,7 @@
   <!-- category/modulefilelist                            -->
   <!-- insert module list into sitemap                    -->
   <!--                                                    -->
-  <xsl:template match="category/modulefilelist">
+  <xsl:template match="sitemap/category/modulefilelist">
 
     <!-- create our own translation list first -->
     <xsl:variable name="translist">
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to