[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] Adding an attribute to the <body> of the TOC file
The chunk-filename returns the chunk filename for the specified element. Since the TOC is generated entirely, it is not an element to be matched with select=".". So you get the chunk filename for the book element, which is 'index.html'. The filename for a separate toc is a special case, generated inside the template named 'make.lots' in html/chunk-code.xsl. It looks like this: <xsl:apply-templates select="." mode="recursive-chunk-filename"> <xsl:with-param name="recursive" select="true()"/> </xsl:apply-templates> <xsl:text>-toc</xsl:text> <xsl:value-of select="$html.ext"/> The recursive-chunk-filename template returns the 'bk01' part for the book element, then the -toc string is added, and finally the html extension. But I'm not sure getting this filename will help with customizing the body.attributes template for the separate toc chunks. The body.attributes template is called by the chunk-element-content template in html/chunk-common.xsl, and while it receives a parameter named nav.context which is set to 'toc' by make.lots, it does not pass along that parameter to the body.attributes template. So from within body.attributes, I'm not sure how you would choose the condition to select different values for the separate chunk files. I think you would have to customize chunk-element-content to pass along the nav.context parameter to body.attributes, and you would have to add that parameter to body.attributes so you can test for it. Normally you could use the current context element in body.attributes (test with something like self::chapter) to test for the current context, but the generated TOC has the same context as book. Bob Stayton Sagehill Enterprises DocBook Consulting bobs@sagehill.net ----- Original Message ----- From: "ileana patrolea" <ileana.patrolea@yahoo.com> To: <docbook-apps@lists.oasis-open.org> Sent: Monday, October 09, 2006 2:54 AM Subject: [docbook-apps] Adding an attribute to the <body> of the TOC file > Hello, > > ------------------- > Problem description > ------------------- > I'm generating the TOC in a separate file whose name > is generated automatically: bk01-toc.html > I am trying to add a new attribute to the <body> > element of this file. > > ------------------- > My solution > ------------------- > I override the body.attributes template. > In my customized template, I generate the filename of > the current chunk and test if it contains the 'toc' > string. > > <xsl:variable name="filename"> > <xsl:apply-templates select="." > mode="chunk-filename"/> > </xsl:variable> > <xsl:message>Testing filename: <xsl:value-of > select="$filename"/></xsl:message> > > <xsl:if test="contains($filename,'toc')"> > <xsl:attribute > name="class">test</xsl:attribute> > </xsl:if> > > ------------------- > Troubles > ------------------- > The result returned in the filename variable is > index.html and not bk01-toc.html > > ------------------- > Questions > ------------------- > Why is this happening? What template should I use to > get bk01-toc.html? > > Could I use a different approach to solve my problem > (without generating the filename of the current > chunk)? > > Thank you, > > > --------------- > mailto: ileana.patrolea@yahoo.com > tel: +40 724 511 514 > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org > > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]