[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'
Revisiting this thread, sorry. The filenames are indeed created as they should be, but internal links to elements (tables, figures) are broken. These internal links want to go to the 'normal' filenames like ch04s05s02.htm. The template I'm using starts out like this: <xsl:template match="d:preface|d:chapter|d:section" mode="recursive-chunk-filename" priority="1"> <xsl:param name="recursive" select="false()" /> and names the chunks following the pattern booklabel_chapterlabel_sect000n.htm The navigation links are fine, it's just links to document elements that have the filenames wrong. I don't see where I'm going wrong. thanks for any ideas, --Tim On Thu, Jun 2, 2011 at 1:32 PM, Tim Arnold <firstname.lastname@example.org> wrote: > 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 <email@example.com> 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 >> firstname.lastname@example.org >> >> >> ----- Original Message ----- From: "Tim Arnold" <email@example.com> >> To: <firstname.lastname@example.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: email@example.com >>> For additional commands, e-mail: firstname.lastname@example.org >>> >>> >>> >> >> >