This is the mail archive of the
docbook-apps@lists.oasis-open.org
mailing list .
Re: [docbook-apps] Does DocBook XSL support framed HTML output?
- From: Kai Hagemeister <kh at planoweb dot de>
- To: paul at kitebird dot com
- Cc: docbook-apps at lists dot oasis-open dot org
- Date: Sat, 04 Dec 2004 23:48:34 +0100
- Subject: Re: [docbook-apps] Does DocBook XSL support framed HTML output?
- References: <20041204184634.GG12241@kite-hub.kitebird.com>
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