Question

I am converting a docbook to an html using 1.77 xsl transformation. But when it is transformed it automatically generates a Table of Contents. How do you change this behavior?

I have found this: Disable table of contents for documents

So I am guessing that html xsl transform would be the presentation system?

Was it helpful?

Solution

Elaborate DocBook formatting is meant to be customized using an xsl stylesheet.

See Also

Writing a DocBOok Customization Layer for Formatting

Customizing Table Of Contents Using XSL

customize_formatting.xsl: Example DocBook XSL Customization Layer

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    version="1.0"> <!-- change this to 2.0 if your tools support it -->
    <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>

    <!--uncomment this to suppress toc when using XSL 1.0 or 2.0
    <xsl:param name="generate.toc">article</xsl:param>
    <xsl:param name="generate.toc">book</xsl:param>
    -->

    <!--uncomment this to suppress toc when using XSL 2.0
    <xsl:param name="generate.toc">
        article nop
        book nop
    </xsl:param>
    -->

</xsl:stylesheet>

How to Use customize_formatting.xsl

Point your tools to use customize_formatting.xsl instead of the off-the-shelf docbook.xsl. Then, put all your formatting customizations in the body of the <xsl:stylesheet> section.

For TOC suppression, you can just uncomment the appropriate line.

There is a quirk with some (or maybe all) XSL 1.0 tools that seem to prevent them from handling the whitespace-separated pairs used in the body of <xsl:param name="generate.toc">. I have had success suppressing TOC by just using the single word article or book instead of the proper whitespace separated pairs.

OTHER TIPS

When transforming, you can use the Transformer#setParameter(String, Object) method to specify no TOC generation like this:

transformer.setParameter("generate.toc", "nop");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top