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] XSL: No toc for qandaset


> On Sun, Aug 03, 2003 at 09:58:14PM +1200, Grant McLean wrote:
>> I'm having trouble getting the DocBook XSL stylesheets to generate a
>> table of contents for my FAQ document.  It all used to work, but I
>> have rebuilt my machine since then and upgraded to the latest
>> stylesheets.
>>
>> My driver file includes the following parameter definitions:
>>
>> <xsl:param name="generate.toc">
>> qandaset  toc
>> qandadiv  nop
>> </xsl:param>
>> <xsl:param name="generate.section.toc.level" select="3"></xsl:param>
>>
>> Which did previously give me the desired multi-level TOC at the
>> start of the document and no TOC in each section.  But now when
>> I generate the HTML, I get nothing where the table of contents
>> ought to be.  It used to work with version 1.51 of the stylesheets.
>>
>> I have poked around in qandaset.xsl and found this section:
>>
>>      <xsl:if test="contains($toc.params, 'toc') and $toc = '1'">
>>        <xsl:call-template name="process.qanda.toc"/>
>>      </xsl:if>
>>
>> If I remove the xsl:if and make it this:
>>
>>        <p>$toc.params: '<xsl:value-of select="$toc.params"/>'</p>
>>        <p>$toc: '<xsl:value-of select="$toc"/>'</p>
>>        <xsl:call-template name="process.qanda.toc"/>
>>
>> then I do get an appropriately formatted TOC preceded by this:
>>
>>        <p>$toc.params: 'toc'</p>
>>        <p>$toc: ''</p>
>>
>> I tried to trace back to determine why $toc was empty but quickly got
>> out of my depth.  Is it possible this is a bug in the stylesheets or
>> am I doing something wrong?
>>
>> The full document and driver file are in CVS here:
>>
>>    http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/perl-xml/perl-xml-faq/
>
>
> Now the stylesheets look for a dbhtml processing instruction
> as well to turn on each qandaset toc.  That is what the
> $toc variable is about.
>
> See http://www.sagehill.net/docbookxsl/QandAtoc.html

Ok, I follow that now, but doesn't that mean the test should be an 'or'.
IE: If toc is enabled for this type of section, OR this specific section.

At the moment, it seems to require both the toc.params setting and
the PI in the XML source.

So perhaps the test should be:

     <xsl:if test="contains($toc.params, 'toc') or $toc = '1'">
       <xsl:call-template name="process.qanda.toc"/>
     </xsl:if>

Regards
Grant




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