[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] overriding a template used in a 'mode'
Hi Bob, Thanks for your great explanation. I'm adding the templates today to match on d:chapter and d:section. It sounds like this isn't a 'best practice', but at least it's possible, and I only override what is actually needed. Just fyi, since I'm matching only on chapters and first-level sections, the resulting html files will follow the naming pattern: bookalias_chapteralias_sect00n.html e.g., userguide_intro_sect002.html. It's easier for writers to recognize where the rendered html is found in their source content. Thanks again, --Tim On Wed, Jun 1, 2011 at 4:24 PM, Bob Stayton <bobs@sagehill.net> wrote: > Hi Tim, > While attribute-sets merge in XSL, templates do not. If you replace that > template with a cut-down version, it will be applied in all cases because of > match="*", and the original template will never be used because yours has a > higher priority. > > Since the template is written using a mode, you could write a new template > that matches on d:chapter in that mode, and one for d:section too. Then the > new template will apply on the to the elements they match, and the original > match="*" template will apply only to any other elements. Your templates > will need to accept the same template parameters and return a similar value. > > Generally using a mode is most useful when you have more than one template > and they match on different elements. This is not a good use of a mode, > because there is only one template that matches on all elements, and then > the xsl:choose part handles the different elements. The template could have > been written as a named template. But it is good that it wasn't because with > a mode you have the opportunity to customize per element by adding templates > with more specific matches, without having to change the original. > > Bob Stayton > Sagehill Enterprises > bobs@sagehill.net > > > ----- Original Message ----- From: "Tim Arnold" <jtim.arnold@gmail.com> > To: <docbook-apps@lists.oasis-open.org> > Sent: Wednesday, June 01, 2011 11:52 AM > Subject: [docbook-apps] overriding a template used in a 'mode' > > >> hi, >> I would like to override part of the chunking xsl stylesheet. >> >> What I've done so far is copy the entire template so it begins as follows: >> <xsl:template match="*" mode="recursive-chunk-filename" priority="1"> >> >> and I change on the two parts I want to be different--the chapter and >> the section: >> <xsl:when test="self::d:chapter"> >> chapter filename stuff >> </xsl:when> >> ... >> <xsl:when test="self::d:section"> >> section filename stuff >> </xsl:when> >> >> So my question is whether I really need to copy the whole template or >> is it possible to override the original template with a template that >> matches just the parts I want to change. >> >> I think the part about this being used in a 'mode' is the part that >> confuses me. >> >> thanks, >> --Tim Arnold >> >> --------------------------------------------------------------------- >> 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]