dion        2002/06/06 08:58:54

  Modified:    src/xslt docbook2document.xsl
  Log:
  Fixed bug where sect1,2 etc were not supported
  
  Revision  Changes    Path
  1.2       +353 -345  jakarta-turbine-maven/src/xslt/docbook2document.xsl
  
  Index: docbook2document.xsl
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-maven/src/xslt/docbook2document.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- docbook2document.xsl      5 Jun 2002 22:01:30 -0000       1.1
  +++ docbook2document.xsl      6 Jun 2002 15:58:54 -0000       1.2
  @@ -4,378 +4,386 @@
       Author:     Berin Loritsch ([EMAIL PROTECTED])
       Author:     Peter Donald  ([EMAIL PROTECTED])
       Author:     dIon Gillard ([EMAIL PROTECTED])
  -    Version:    $Id: docbook2document.xsl,v 1.1 2002/06/05 22:01:30 dion Exp $
  +    Version:    $Id: docbook2document.xsl,v 1.2 2002/06/06 15:58:54 dion Exp $
       FIXME:      Doesn't handle attributes of informaltable and other docbook 
elements
     -->
   
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
       <!-- used for cross ref links (xref) -->
  -    <xsl:key name="id" match="*" use="@id"/>
  +  <xsl:key name="id" match="*" use="@id"/>
   
  -    <xsl:template match="/">
  -        <xsl:comment>This document generated by docbook2document.xsl</xsl:comment>
  -        <xsl:apply-templates />
  -    </xsl:template>
  +  <xsl:template match="/">
  +    <xsl:comment>This document generated by docbook2document.xsl</xsl:comment>
  +    <xsl:apply-templates />
  +  </xsl:template>
       
  -    <!-- top level component templates -->
  -    <xsl:template match="book">
  -        <document>
  -            <properties>
  -                <title>
  -                    <xsl:value-of select="title"/>
  -                    <xsl:if test="subtitle">
  -                        (<xsl:value-of select="subtitle"/>)
  -                    </xsl:if>
  -                </title>
  -                <xsl:for-each select="//authorgroup/author">
  -                    <author email="{affiliation/address/email}">
  -                        <xsl:if test="honorific"><xsl:value-of 
select="honorific"/>. </xsl:if>
  -                        <xsl:if test="firstname">
  -                            <xsl:value-of select="firstname"/>
  -                            <xsl:text> </xsl:text>
  -                        </xsl:if>
  -                        <xsl:value-of select="surname"/>
  -                    </author>
  -                </xsl:for-each>
  -                <!-- always have the following as an author -->
  -                <author email="[EMAIL PROTECTED]">Commons 
Documentation Team</author>
  -            </properties>
  -
  -            <body>
  -                <xsl:apply-templates select="dedication"/>
  -                <xsl:apply-templates select="bookinfo"/>
  -            </body>
  -        </document>    
  -    </xsl:template>
  -
  -    <!-- 
  -        top level components create document, properties element and start body
  -      -->
  -    <xsl:template match="chapter|article|appendix">
  -        <document>
  -            <properties>
  -                <title>
  -                    <xsl:value-of select="title"/>
  -                    <xsl:if test="subtitle">
  -                        (<xsl:value-of select="subtitle"/>)
  -                    </xsl:if>
  -                </title>
  -                <xsl:for-each select="//authorgroup/author">
  -                    <author email="{affiliation/address/email}">
  -                        <xsl:if test="honorific"><xsl:value-of 
select="honorific"/>. </xsl:if>
  -                        <xsl:if test="firstname">
  -                            <xsl:value-of select="firstname"/>
  -                            <xsl:text> </xsl:text>
  -                        </xsl:if>
  -                        <xsl:value-of select="surname"/>
  -                    </author>
  -                </xsl:for-each>
  -                <!-- always have the following as an author -->
  -                <author email="[EMAIL PROTECTED]">
  -                    Commons Documentation Team
  -                </author>
  -            </properties>
  -
  -            <body>
  -
  -                <xsl:apply-templates select="para"/>
  -
  -                <xsl:apply-templates select="section">
  -                    <xsl:with-param name="level" select="1"/>
  -                </xsl:apply-templates>
  -
  -                <xsl:apply-templates select="//footnote" mode="base"/>
  -            </body>
  -        </document>
  -    </xsl:template>
  -
  -    <xsl:template match="title|subtitle"/>
  -
  -    <!-- author block -->
  -    <!-- FIXME: Where would this match? -->
  -    <xsl:template match="author">
  -        <p>Author: 
  -            <xsl:value-of select="honorific"/><xsl:text>. </xsl:text>
  -            <xsl:value-of select="firstname"/><xsl:text> </xsl:text>
  +  <!-- top level component templates -->
  +  <xsl:template match="book">
  +    <document>
  +      <properties>
  +        <title>
  +          <xsl:value-of select="title"/>
  +          <xsl:if test="subtitle">
  +            (<xsl:value-of select="subtitle"/>)
  +          </xsl:if>
  +        </title>
  +        <xsl:for-each select="//authorgroup/author">
  +          <author email="{affiliation/address/email}">
  +            <xsl:if test="honorific"><xsl:value-of select="honorific"/>. </xsl:if>
  +            <xsl:if test="firstname">
  +              <xsl:value-of select="firstname"/>
  +              <xsl:text> </xsl:text>
  +            </xsl:if>
               <xsl:value-of select="surname"/>
  -        </p>
  -      
  -        <xsl:text>Affiliations</xsl:text>
  -        <ul>
  -            <xsl:apply-templates select="affiliation"/>
  -        </ul>
  -        <xsl:apply-templates select="authorblurb"/>
  -    </xsl:template>
  +          </author>
  +        </xsl:for-each>
  +      </properties>
  +
  +      <body>
  +        <xsl:apply-templates select="dedication"/>
  +        <xsl:apply-templates select="bookinfo"/>
  +      </body>
  +    </document>    
  +  </xsl:template>
  +
  +  <!-- 
  +      top level components create document, properties element and start body
  +    -->
  +  <xsl:template match="chapter|article|appendix">
  +    <document>
  +      <properties>
  +        <title>
  +          <xsl:value-of select="title"/>
  +          <xsl:if test="subtitle">
  +            (<xsl:value-of select="subtitle"/>)
  +          </xsl:if>
  +        </title>
  +        <xsl:for-each select="//authorgroup/author">
  +          <author email="{affiliation/address/email}">
  +            <xsl:if test="honorific"><xsl:value-of select="honorific"/>. </xsl:if>
  +            <xsl:if test="firstname">
  +              <xsl:value-of select="firstname"/>
  +              <xsl:text> </xsl:text>
  +            </xsl:if>
  +            <xsl:value-of select="surname"/>
  +          </author>
  +        </xsl:for-each>
  +      </properties>
   
  -    <xsl:template match="affiliation">
  -        <li>
  -            <xsl:text>[</xsl:text>
  -            <xsl:value-of select="shortaffil"/>
  -            <xsl:text>] </xsl:text>
  -            <b><xsl:value-of select="jobtitle"/></b>
  -            <i><xsl:value-of select="orgname"/>
  -                <xsl:if test="orgdiv">
  -                    <xsl:text>/</xsl:text>
  -                    <xsl:value-of select="orgdiv"/>
  -                </xsl:if>
  -            </i>
  -        </li>
  -    </xsl:template>
  +      <body>
  +        <xsl:apply-templates />
   
  -    <xsl:template match="authorblurb">
  -        <xsl:text>Bio</xsl:text>
  +        <xsl:apply-templates select="//footnote" mode="base"/>
  +      </body>
  +    </document>
  +  </xsl:template>
  +
  +  <xsl:template match="title|subtitle"/>
  +
  +  <!-- author block -->
  +  <!-- FIXME: Where would this match? -->
  +  <xsl:template match="author">
  +    <p>Author: 
  +      <xsl:value-of select="honorific"/><xsl:text>. </xsl:text>
  +      <xsl:value-of select="firstname"/><xsl:text> </xsl:text>
  +      <xsl:value-of select="surname"/>
  +    </p>
  +      
  +    <xsl:text>Affiliations</xsl:text>
  +    <ul>
  +      <xsl:apply-templates select="affiliation"/>
  +    </ul>
  +    <xsl:apply-templates select="authorblurb"/>
  +  </xsl:template>
  +
  +  <xsl:template match="affiliation">
  +    <li>
  +      <xsl:text>[</xsl:text>
  +      <xsl:value-of select="shortaffil"/>
  +      <xsl:text>] </xsl:text>
  +      <b><xsl:value-of select="jobtitle"/></b>
  +      <i><xsl:value-of select="orgname"/>
  +        <xsl:if test="orgdiv">
  +          <xsl:text>/</xsl:text>
  +          <xsl:value-of select="orgdiv"/>
  +        </xsl:if>
  +      </i>
  +    </li>
  +  </xsl:template>
  +
  +  <xsl:template match="authorblurb">
  +    <xsl:text>Bio</xsl:text>
  +    <ul>
  +      <xsl:apply-templates/>
  +    </ul>
  +  </xsl:template>
  +
  +  <xsl:template 
match="honorific|firstname|surname|orgdiv|orgname|shortaffil|jobtitle"/>
  +
  +  <!-- revision history -->
  +  <xsl:template match="revhistory">
  +    <section name="Revision History">
  +      <xsl:variable name="unique-revisions" 
  +        
select="revision[not(revnumber=preceding-sibling::revision/revnumber)]/revnumber"/>
  +
  +      <xsl:variable name="base" select="."/>
  +
  +      <xsl:for-each select="$unique-revisions">
  +        <p>Revision <xsl:value-of select="."/> 
  +          (<xsl:value-of select="$base/revision[revnumber=current()]/date"/>)
  +        </p>
           <ul>
  -            <xsl:apply-templates/>
  +          <xsl:apply-templates select="$base/revision[revnumber=current()]"/>
           </ul>
  -    </xsl:template>
  -
  -    <xsl:template 
match="honorific|firstname|surname|orgdiv|orgname|shortaffil|jobtitle"/>
  -
  -    <!-- revision history -->
  -    <xsl:template match="revhistory">
  -        <section name="Revision History">
  -            <xsl:variable name="unique-revisions" 
select="revision[not(revnumber=preceding-sibling::revision/revnumber)]/revnumber"/>
  -
  -            <xsl:variable name="base" select="."/>
  -
  -            <xsl:for-each select="$unique-revisions">
  -                <p>Revision <xsl:value-of select="."/> 
  -                    (<xsl:value-of 
select="$base/revision[revnumber=current()]/date"/>)
  -                </p>
  -                <ul>
  -                    <xsl:apply-templates 
select="$base/revision[revnumber=current()]"/>
  -                </ul>
  -            </xsl:for-each>
  +      </xsl:for-each>
  +    </section>
  +  </xsl:template>
  +
  +  <xsl:template match="revision">
  +    <li>
  +      <xsl:choose>
  +        <xsl:when test="@revisionflag='added'">
  +          <img align="absmiddle" alt="added" border="0" src="images/add.jpg"/>
  +        </xsl:when>
  +        <xsl:when test="@revisionflag='changed'">
  +          <img align="absmiddle" alt="changed" border="0" src="images/update.jpg"/>
  +        </xsl:when>
  +        <xsl:when test="@revisionflag='deleted'">
  +          <img align="absmiddle" alt="deleted" border="0" src="images/remove.jpg"/>
  +        </xsl:when>
  +        <xsl:when test="@revisionflag='off'">
  +          <img align="absmiddle" alt="off" border="0" src="images/fix.jpg"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          <img align="absmiddle" alt="changed" border="0" src="images/update.jpg"/>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +      <xsl:value-of select="revremark"/>
  +      <xsl:text> (</xsl:text><xsl:value-of 
select="authorinitials"/><xsl:text>)</xsl:text>
  +    </li>
  +  </xsl:template>
  +
  +  <xsl:template match="revnumber|revremark|authorinitials|date"/>
  +
  +  <xsl:template match="section">
  +    <xsl:call-template name="section-common">
  +      <xsl:with-param name="level" select="1"/>
  +    </xsl:call-template>
  +  </xsl:template>
  +
  +  <xsl:template match="sect1">
  +    <xsl:call-template name="section-common">
  +      <xsl:with-param name="level" select="1"/>
  +    </xsl:call-template>
  +  </xsl:template>
  +
  +  <xsl:template match="sect2">
  +    <xsl:call-template name="section-common">
  +      <xsl:with-param name="level" select="2"/>
  +    </xsl:call-template>
  +  </xsl:template>
  +        
  +  <!-- sections - and nested -->
  +  <xsl:template name="section-common">
  +    <xsl:param name="level"/>
  +
  +    <xsl:choose>
  +      <xsl:when test="number($level)=1">
  +        <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  +        <section name="{title}">
  +          <xsl:apply-templates>
  +            <xsl:with-param name="level" select="number($level)+1"/>
  +          </xsl:apply-templates>
           </section>
  -    </xsl:template>
  -
  -    <xsl:template match="revision">
  -        <li>
  -            <xsl:choose>
  -                <xsl:when test="@revisionflag='added'">
  -                    <img align="absmiddle" alt="added" border="0" 
src="images/add.jpg"/>
  -                </xsl:when>
  -                <xsl:when test="@revisionflag='changed'">
  -                    <img align="absmiddle" alt="changed" border="0" 
src="images/update.jpg"/>
  -                </xsl:when>
  -                <xsl:when test="@revisionflag='deleted'">
  -                    <img align="absmiddle" alt="deleted" border="0" 
src="images/remove.jpg"/>
  -                </xsl:when>
  -                <xsl:when test="@revisionflag='off'">
  -                    <img align="absmiddle" alt="off" border="0" 
src="images/fix.jpg"/>
  -                </xsl:when>
  -                <xsl:otherwise>
  -                    <img align="absmiddle" alt="changed" border="0" 
src="images/update.jpg"/>
  -                </xsl:otherwise>
  -            </xsl:choose>
  -            <xsl:value-of select="revremark"/>
  -            <xsl:text> (</xsl:text><xsl:value-of 
select="authorinitials"/><xsl:text>)</xsl:text>
  -        </li>
  -    </xsl:template>
  -
  -    <xsl:template match="revnumber|revremark|authorinitials|date"/>
  -
  -    <!-- sections - and nested -->
  -    <xsl:template match="section">
  -        <xsl:param name="level"/>
  -
  -        <xsl:choose>
  -            <xsl:when test="number($level)=1">
  -                <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  -                <section name="{title}">
  -                    <xsl:apply-templates>
  -                        <xsl:with-param name="level" select="number($level)+1"/>
  -                    </xsl:apply-templates>
  -                </section>
  -            </xsl:when>
  -            <xsl:when test="number($level)=2">
  -                <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  -                <subsection name="{title}">
  -                    <xsl:apply-templates>
  -                        <xsl:with-param name="level" select="number($level)+1"/>
  -                    </xsl:apply-templates>
  -                </subsection>
  -            </xsl:when>
  -            <xsl:otherwise>
  -                <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  -                <p><a name="{@name}"><strong><xsl:value-of 
select="title"/></strong></a><br />
  -                    <xsl:apply-templates>
  -                        <xsl:with-param name="level" select="number($level)+1"/>
  -                    </xsl:apply-templates>
  -                </p>    
  -            </xsl:otherwise>
  -        </xsl:choose>
  -    </xsl:template>
  +      </xsl:when>
  +      <xsl:when test="number($level)=2">
  +        <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  +        <subsection name="{title}">
  +          <xsl:apply-templates>
  +            <xsl:with-param name="level" select="number($level)+1"/>
  +          </xsl:apply-templates>
  +        </subsection>
  +      </xsl:when>
  +      <xsl:otherwise>
  +        <xsl:if test="@id"><a name="{@id}"> </a></xsl:if>
  +        <p><a name="{@name}"><strong><xsl:value-of select="title"/></strong></a><br 
/>
  +          <xsl:apply-templates>
  +            <xsl:with-param name="level" select="number($level)+1"/>
  +          </xsl:apply-templates>
  +        </p>    
  +      </xsl:otherwise>
  +    </xsl:choose>
  +  </xsl:template>
       
  -    <!-- paragraphs/textual elements -->
  -    <xsl:template match="para">
  -        <p><xsl:apply-templates/></p>
  -    </xsl:template>
  +  <!-- paragraphs/textual elements -->
  +  <xsl:template match="para">
  +    <p><xsl:apply-templates/></p>
  +  </xsl:template>
   
  -    <xsl:template match="emphasis"><em><xsl:apply-templates/></em></xsl:template>
  +  <xsl:template match="emphasis"><em><xsl:apply-templates/></em></xsl:template>
       
  -    <xsl:template match="example">
  -        <p><pre><xsl:apply-templates/></pre></p>
  -    </xsl:template>
  -
  -    <!-- book details --> 
  -    <xsl:template match="bookinfo">
  -        <b><xsl:value-of select="edition"/></b><xsl:text> </xsl:text>
  -        <i>pub. <xsl:value-of select="pubdate"/></i>
  -        <xsl:apply-templates/>
  -    </xsl:template>
  -
  -    <xsl:template match="dedication">
  -        <b>Dedication</b>
  -        <xsl:apply-templates/>
  -    </xsl:template>
  -
  -    <xsl:template match="edition|pubdate|year|holder"/>
  -
  -    <xsl:template match="copyright">
  -        <p>Copyright &#x00A9;<xsl:value-of select="year"/> by 
  -            <xsl:value-of select="holder"/>.<br/>
  -            <i>All rights reserved.</i>
  -        </p>
  -    </xsl:template>
  +  <xsl:template match="example">
  +    <p><pre><xsl:apply-templates/></pre></p>
  +  </xsl:template>
  +
  +  <!-- book details --> 
  +  <xsl:template match="bookinfo">
  +    <b><xsl:value-of select="edition"/></b><xsl:text> </xsl:text>
  +    <i>pub. <xsl:value-of select="pubdate"/></i>
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <xsl:template match="dedication">
  +    <b>Dedication</b>
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <xsl:template match="edition|pubdate|year|holder"/>
  +
  +  <xsl:template match="copyright">
  +    <p>Copyright &#x00A9;<xsl:value-of select="year"/> by 
  +      <xsl:value-of select="holder"/>.<br/>
  +      <i>All rights reserved.</i>
  +    </p>
  +  </xsl:template>
  +
  +  <xsl:template match="legalnotice">
  +    <p>Legal Notice</p>
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <!-- lists etc -->
  +  <xsl:template match="programlisting">
  +    <source><xsl:apply-templates/></source>
  +  </xsl:template>
   
  -    <xsl:template match="legalnotice">
  -        <p>Legal Notice</p>
  -        <xsl:apply-templates/>
  -    </xsl:template>
  -
  -    <!-- lists etc -->
  -    <xsl:template match="programlisting">
  -        <source><xsl:apply-templates/></source>
  -    </xsl:template>
  -
  -    <xsl:template match="orderedlist"><ol><xsl:apply-templates/></ol></xsl:template>
  +  <xsl:template match="orderedlist"><ol><xsl:apply-templates/></ol></xsl:template>
   
  -    <xsl:template 
match="listitem|member"><li><xsl:apply-templates/></li></xsl:template>
  +  <xsl:template 
match="listitem|member"><li><xsl:apply-templates/></li></xsl:template>
   
  -    <xsl:template 
match="itemizedlist|simplelist"><ul><xsl:apply-templates/></ul></xsl:template>
  +  <xsl:template 
match="itemizedlist|simplelist"><ul><xsl:apply-templates/></ul></xsl:template>
       
  -    <xsl:template 
match="classname|function|parameter"><code><xsl:apply-templates/><xsl:if 
test="name(.)='function'"><xsl:text>()</xsl:text></xsl:if></code></xsl:template>
  -
  -    <xsl:template match="blockquote">
  -        <xsl:if test="title">
  -            <blockquote><xsl:value-of select="title"/><br/>
  -            <xsl:apply-templates/>
  -            </blockquote>
  -        </xsl:if>
  -        <p></p>
  -    </xsl:template>
  +  <xsl:template 
match="classname|function|parameter"><code><xsl:apply-templates/><xsl:if 
test="name(.)='function'"><xsl:text>()</xsl:text></xsl:if></code></xsl:template>
   
  -    <xsl:template match="warning">
  -        <xsl:if test="title">
  -            <p><em><xsl:value-of select="title"/></em></p>
  -        </xsl:if>
  -        <p><xsl:apply-templates/></p>
  -    </xsl:template>
  -
  -    <!-- links -->
  -    <xsl:template match="ulink"><a 
href="{@url}"><xsl:apply-templates/></a></xsl:template>
  -    <xsl:template match="xref">
  -        <!--
  -            make a link to the linkend specified, prefixing with a # since it's
  -            internal to the generated html. The text of the link should be either
  -            a) element pointed to by linkend's xreflabel or
  -            b) endterm content
  -         -->
  -        <xsl:variable name="link-targets" select="key('id',@linkend)"/>
  -        <xsl:variable name="link-target" select="$link-targets[1]"/>
  -
  -        <a href="#{@linkend}">
  -            <!-- xreflabel of target goes here-->
  -            <xsl:choose>
  -                <xsl:when test="$link-target/@xreflabel">
  -                    <xsl:value-of select="$link-target/@xreflabel"/>
  -                </xsl:when>
  -                <xsl:otherwise>
  -                    <xsl:variable name="endterm-targets" 
select="key('id',@endterm)"/>
  -                    <xsl:variable name="endterm-target" 
select="$endterm-targets[1]"/>
  -                    <xsl:apply-templates select="$endterm-target"/>
  -                </xsl:otherwise>
  -            </xsl:choose>
  -        </a>
  -    </xsl:template>
  -
  -    <!-- tables, footnotes etc -->
  -    <xsl:template match="footnote">
  -        <sup><a href="#{generate-id(.)}"><xsl:value-of select="generate-id(.)"/></a>
  -        </sup>
  -    </xsl:template>
  -
  -    <xsl:template match="footnote" mode="base">
  -        <a name="{generate-id(.)}"/><xsl:value-of 
select="generate-id(.)"/><xsl:text>) </xsl:text><i><xsl:value-of select="."/></i>
  -    </xsl:template>
  -
  -    <xsl:template match="figure">
  -        <p>Figure: <xsl:value-of select="title"/></p>
  +  <xsl:template match="blockquote">
  +    <xsl:if test="title">
  +      <blockquote><xsl:value-of select="title"/><br/>
           <xsl:apply-templates/>
  -    </xsl:template>
  -
  -    <xsl:template match="graphic">
  -        <img border="0" alt="{@srccredit}" src="{@fileref}"/>
  -        <xsl:if test="@srccredit">
  -            <ul><li><xsl:value-of select="@srccredit"/></li></ul>
  -        </xsl:if>
  -    </xsl:template>
  -
  -    <xsl:template match="table"><table><xsl:apply-templates/></table></xsl:template>
  -
  -    <!-- FIXME: support attributes of informal table here -->
  -    <xsl:template match="informaltable">
  -        <table><xsl:apply-templates/></table>
  -    </xsl:template>
  -
  -    <xsl:template match="tgroup">
  -        <xsl:apply-templates select="thead|tbody|tfoot"/>
  -    </xsl:template>
  -
  -    <xsl:template match="thead">
  -        <xsl:apply-templates select="row" mode="head"/>
  -    </xsl:template>
  -
  -    <xsl:template match="row" mode="head">
  -        <tr><xsl:apply-templates select="entry" mode="head"/></tr>
  -    </xsl:template>
  -
  -    <xsl:template match="row">
  -        <tr><xsl:apply-templates/></tr>
  -    </xsl:template>
  -
  -    <xsl:template match="tbody|tfoot">
  -        <xsl:apply-templates/>
  -    </xsl:template>
  -
  -    <xsl:template match="entry" mode="head">
  -        <th><xsl:apply-templates/></th>
  -    </xsl:template>
  +      </blockquote>
  +    </xsl:if>
  +    <p></p>
  +  </xsl:template>
  +
  +  <xsl:template match="warning">
  +    <xsl:if test="title">
  +      <p><em><xsl:value-of select="title"/></em></p>
  +    </xsl:if>
  +    <p><xsl:apply-templates/></p>
  +  </xsl:template>
  +
  +  <!-- links -->
  +  <xsl:template match="ulink"><a 
href="{@url}"><xsl:apply-templates/></a></xsl:template>
  +  <xsl:template match="xref">
  +    <!--
  +        make a link to the linkend specified, prefixing with a # since it's
  +        internal to the generated html. The text of the link should be either
  +        a) element pointed to by linkend's xreflabel or
  +        b) endterm content
  +     -->
  +    <xsl:variable name="link-targets" select="key('id',@linkend)"/>
  +    <xsl:variable name="link-target" select="$link-targets[1]"/>
  +
  +    <a href="#{@linkend}">
  +      <!-- xreflabel of target goes here-->
  +      <xsl:choose>
  +        <xsl:when test="$link-target/@xreflabel">
  +          <xsl:value-of select="$link-target/@xreflabel"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          <xsl:variable name="endterm-targets" select="key('id',@endterm)"/>
  +          <xsl:variable name="endterm-target" select="$endterm-targets[1]"/>
  +          <xsl:apply-templates select="$endterm-target"/>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +    </a>
  +  </xsl:template>
  +
  +  <!-- tables, footnotes etc -->
  +  <xsl:template match="footnote">
  +    <sup><a href="#{generate-id(.)}"><xsl:value-of select="generate-id(.)"/></a>
  +    </sup>
  +  </xsl:template>
  +
  +  <xsl:template match="footnote" mode="base">
  +    <a name="{generate-id(.)}"/><xsl:value-of select="generate-id(.)"/><xsl:text>) 
</xsl:text><i><xsl:value-of select="."/></i>
  +  </xsl:template>
  +
  +  <xsl:template match="figure">
  +    <p>Figure: <xsl:value-of select="title"/></p>
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <xsl:template match="graphic">
  +    <img border="0" alt="{@srccredit}" src="{@fileref}"/>
  +    <xsl:if test="@srccredit">
  +      <ul><li><xsl:value-of select="@srccredit"/></li></ul>
  +    </xsl:if>
  +  </xsl:template>
  +
  +  <xsl:template match="table"><table><xsl:apply-templates/></table></xsl:template>
  +
  +  <!-- FIXME: support attributes of informal table here -->
  +  <xsl:template match="informaltable">
  +    <table><xsl:apply-templates/></table>
  +  </xsl:template>
  +
  +  <xsl:template match="tgroup">
  +    <xsl:apply-templates select="thead|tbody|tfoot"/>
  +  </xsl:template>
  +
  +  <xsl:template match="thead">
  +    <xsl:apply-templates select="row" mode="head"/>
  +  </xsl:template>
  +
  +  <xsl:template match="row" mode="head">
  +    <tr><xsl:apply-templates select="entry" mode="head"/></tr>
  +  </xsl:template>
  +
  +  <xsl:template match="row">
  +    <tr><xsl:apply-templates/></tr>
  +  </xsl:template>
  +
  +  <xsl:template match="tbody|tfoot">
  +    <xsl:apply-templates/>
  +  </xsl:template>
  +
  +  <xsl:template match="entry" mode="head">
  +    <th><xsl:apply-templates/></th>
  +  </xsl:template>
     
  -    <xsl:template match="entry">
  -        <td><xsl:apply-templates/></td>
  -    </xsl:template>
  -
  -    <xsl:template match="firstterm">
  -        <i><xsl:apply-templates/></i>
  -    </xsl:template>
  +  <xsl:template match="entry">
  +    <td><xsl:apply-templates/></td>
  +  </xsl:template>
  +
  +  <xsl:template match="firstterm">
  +    <i><xsl:apply-templates/></i>
  +  </xsl:template>
     
  -    <xsl:template match="remark">
  -        <p><b>Note:</b> <xsl:apply-templates/></p>
  -    </xsl:template>
  +  <xsl:template match="remark">
  +    <p><b>Note:</b> <xsl:apply-templates/></p>
  +  </xsl:template>
     
  -    <xsl:template match="sgmltag">
  -        <code><xsl:apply-templates/></code>
  -    </xsl:template>
  +  <xsl:template match="sgmltag">
  +    <code><xsl:apply-templates/></code>
  +  </xsl:template>
     
  -    <xsl:template 
match="trademark"><xsl:apply-templates/><sup>TM</sup></xsl:template>
  +  <xsl:template match="trademark"><xsl:apply-templates/><sup>TM</sup></xsl:template>
   
  -    <xsl:template match="node()|@*" priority="-1">
  -        <xsl:copy>
  -            <xsl:apply-templates select="node()|@*"/>
  -        </xsl:copy>
  -    </xsl:template>
  +  <xsl:template match="node()|@*" priority="-1">
  +    <xsl:copy>
  +      <xsl:apply-templates select="node()|@*"/>
  +    </xsl:copy>
  +  </xsl:template>
     
   </xsl:stylesheet>
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to