OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Header


Hi,

On Sunday 31 December 2006 14:24, Mauritz Jeanson wrote:
> > -----Original Message-----
> > From: Huber Evelyne
> > I'm trying to change the header on the html. I'm aiming for
> > something like part>chapter>section to be displayed in the
> > header to easy navigation and show the current position. and
> > where the words part, chapter, section are links.
> > can anyone help me and show me how the xsl need to look like.
>
> You are looking for "breadcrumbs". See this page:
> http://techwriter.dk/tools/docbook/breadcrumb.html

Very nice! :-)

However, this works for DocBook 4.x documents only. If you make a small 
modification it will work with DocBook 5 too. I tried it with the 
following modification and it works for me:

<xsl:template name="tw.generate.breadcrumb"
              xmlns:d="http://docbook.org/ns/docbook";>
  <xsl:param name="current.node" select="."/>
 
  <xsl:for-each select="ancestor::*">
    <xsl:element name="a">
      <xsl:attribute name="href">
        <xsl:apply-templates select="$current.node"
                             mode="chunk-filename"/>
      </xsl:attribute>
      
      <xsl:choose>
        <xsl:when test="$current.node/title">
          <xsl:value-of select="normalize-space($current.node//title)"/>    
        </xsl:when>
        <xsl:when test="$current.node/d:info/d:title">
          <xsl:value-of
              select="normalize-space($current.node/d:info/d:title)"/>   
        </xsl:when>
      </xsl:choose>      
    </xsl:element>
    <xsl:text> &#187; </xsl:text>
  </xsl:for-each>
 
  <!-- 
     We don't want to make the current page an active link 
  -->
  <xsl:if test="$current.node != /*">
    <strong>
      <xsl:choose>
        <xsl:when test="$current.node/title">
          <xsl:value-of select="normalize-space($current.node//title)"/>    
        </xsl:when>
        <xsl:when test="$current.node/d:info/d:title">
          <xsl:value-of
              select="normalize-space($current.node/d:info/d:title)"/>   
        </xsl:when>
      </xsl:choose>
    </strong>
  </xsl:if>
</xsl:template>


Tom

-- 
Thomas Schraitle


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]