This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [docbook-apps] Does DocBook XSL support framed HTML output?


Hello Paul,

Do the DocBook XSL stylesheets support production of chunked output that
includes a navigation frame?

With a little workaround they do.
Take a look at the generation of the HTMLHelp stylesheets.
The templates which have mode hhc generate a html file with the navigation tree for the HTMLHelp-output. It generates a file toc.hhc which is a navigation tree in html.


You can easy write a Stylesheet which generates a Navigation from this. I filled a JavaScript-Array and presented an alternative HTML-Tree if JavaScript is deactivated. The Stylesheet is quite short. The part which is not for the JavaScript output looks like the following:

 <xsl:template match="object" mode="noscript">
    <xsl:if test="./@type='text/sitemap'">
      <a href='{param[2]/@value}' title='{param/@value}' target="body">
       <xsl:value-of select="param/@value"/>
      </a>
    </xsl:if>
  </xsl:template>
<xsl:template match="li" mode="noscript">
    <li><xsl:apply-templates mode="noscript"/></li>
  </xsl:template>

 <xsl:template match="ul" mode="noscript">
    <xsl:choose>
      <xsl:when test="(position()=2)">
	<ul class="top">
	  <xsl:apply-templates mode="noscript"/>
	</ul>
      </xsl:when>
      <xsl:otherwise>
	<ul class="list">
	  <xsl:apply-templates mode="noscript"/>
	</ul>
      </xsl:otherwise>
    </xsl:choose>

</xsl:template>
You should also include a stylesheet. You can delete the mode if you have only a none JavaScript navigation. Save the output in a file called toc.html.


Next step you write an index.html. Example:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html>
  <head>
    <title>V_TITLE</title>
  </head>

  <frameset cols="25%,*">
    <frame src="toc.html" name="list"></frame>
    <frame src="index2.html" name="body"></frame>
  </frameset>
</html>

The first output-file of your chunked html-files is called index2.html. Thats it. You can easy automate this process.

Regards
Kai


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]