Hi Ari,
You want to look at autotoc.xsl. The toc.xsl module has templates for a
TOC that is created by hand using <tocentry> elements, something that
almost no one does. Use autotoc.xsl for an automatically-generated TOC.
oOur first step is to turn on a table of contents for each chunk output.
That is controlled by the stylesheet param named 'generate.toc', and few
params that control which levels of section get a toc, all described here;
http://www.sagehill.net/docbookxsl/TOCcontrol.html
That will trigger each element mentioned in 'generate.toc' to call its
special template from autotoc.xsl to generate a TOC, which would be:
'division.toc' for set and book
'component.toc' for chapter, appendix, preface
'section.toc' for sections
By default, these will generate a "context-appropriate" TOC for each
element, which means it includes only the children of the current
element. So you need to redefine 'component.toc' and 'section.toc' to
instead call 'division.toc'.
<xsl:template name="section.toc">
<xsl:param name="toc-context" select="."/>
<xsl:param name="toc.title.p" select="true()"/>
<xsl:for-each select="ancestor::d:book">
<xsl:call-template name="division.toc">
<xsl:with-param name="toc-context" select="."/>
<xsl:with-param name="toc.title.p" select="$toc.title.p"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
The xsl:for-each is necessary to change the context from the current
element to the book element. The "d:book" is needed to match the
namespace in DocBook 5, so use just "book" if you are using DocBook 4.
Do the same for redefining 'component.toc'.
Templates with mode="toc" are used in the construction of a TOC to
generate a TOC entry for the given element. You probably won't need to
customize those for your purpose.
Let me know if this doesn't work for you.
Bob Stayton
Sagehill Enterprises
b...@sagehill.net
On 11/18/2015 2:57 PM, Aristedes Maniatis wrote:
Thanks for your help, but the webhelp output was just way too
different. So I've struggled to try and modify the TOC output from
docbook. But nothing I try seems to be able to customise it. Even
when I try:
<xsl:import href="@rootDir@/build/xslt/docbook/html/chunk.xsl"/>
<xsl:template name="section.toc" mode="toc">
<xsl:text>******************</xsl:text> </xsl:template>
<xsl:template match="section/toc" mode="toc">
<xsl:text>******************</xsl:text> </xsl:template>
with or without the mode (I don't really understand how the mode is
used in XSLT).
I'm a bit confused by the presence of both toc.xsl and autotoc.xsl.
But nothing I try seems to allow me to modify them.
I have no problem modifying other things like <xsl:template
name="user.head.content">
I feel like I'm missing something really obvious.
Ari
On 22/10/2015 12:46pm, Peter Desjardins wrote:
[moving to docbook-apps]
What you are describing sounds like the webhelp output. Did you
consider using that?
Webhelp produces HTML pages with the full TOC on each page. I have
customized the HTML and CSS significantly to match different web
sites and branding.
Peter
On Wed, Oct 21, 2015 at 9:39 PM, Aristedes Maniatis
<a...@ish.com.au> wrote:
I have chunked html output from docbook 5, and want to output the
entire TOC on every page, including all parents of the chapter
currently being rendered.
I found one approach here:
http://markmail.org/message/xpmrfboyu3tr5ehn
But it is 11 years old, and not quite right, so I modified it a
little...
<!-- show all sections in TOC, including parents of the current
section --> <xsl:template match="chapter" mode="toc"> <xsl:param
name="toc-context" select="."/>
<xsl:for-each select="ancestor::book"> <xsl:apply-templates
select="book" mode="toc"> <xsl:with-param name="toc-context"
select="."/> </xsl:apply-templates> </xsl:for-each>
</xsl:template>
but it doesn't work. I'm a bit out of my depth with this level of
XSLT hackery. Any help would be welcome...
Ari
-- --------------------------> Aristedes Maniatis ish
http://www.ish.com.au Level 1, 30 Wilson Street Newtown 2042
Australia phone +61 2 9550 5001 fax +61 2 9550 4001 GPG
fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org