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] Adding an icon before a chapter title -continuation

I'm not quite clear on how your custom "chaptitle.title" template is being 
called.  I'm guessing that you have customized the titlepage spec file as 
described in my book:


If so, then the $node variable in the template contains the chapter element, 
and you can use $node/@icon  to get at the attribute value.  The reason 
@icon didn't work is because the context node for the template is the 
chapter's title element, not the chapter.  How do I know that?  If you look 
in titlepage.templates.xsl, you will find now the original "component.title" 
template was called for a chapter:

<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"; 
xsl:use-attribute-sets="chapter.titlepage.recto.style" font-size="24.8832pt" 
<xsl:call-template name="component.title">
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>

This template matches on title, which makes the title the context node for 
the call to "component.title".

I think if you had used parent::chapter/@icon  in your customization it 
would have worked as well.

Bob Stayton
Sagehill Enterprises

----- Original Message ----- 
From: Nancy Brandt
To: docbook-apps@lists.oasis-open.org
Sent: Monday, October 06, 2008 6:32 AM
Subject: [docbook-apps] Adding an icon before a chapter title -continuation

Hi everybody,

what I am actually trying to do is the following:

<!-- Setting chapter title to separate number and label -->
<xsl:template name="chaptitle.title">
  <xsl:param name="node" select="."/>
  <xsl:variable name="id">
    <xsl:call-template name="object.id">
      <xsl:with-param name="object" select="$node"/>

  <fo:block xsl:use-attribute-sets="chap.label.properties">
    <xsl:apply-templates select="$node" mode="label.markup"/>

  <fo:block xsl:use-attribute-sets="chap.title.properties">

    <fo:list-block provisional-distance-between-starts="1cm + 8pt"
          <fo:list-item-label end-indent="label-end()">
                <xsl:attribute name="src">
        <xsl:call-template name="fo-external-image">
          <xsl:with-param name="filename" select=concat('images', @icon, 
          <fo:list-item-body start-indent="body-start()">
                <xsl:apply-templates select="$node" mode="title.markup"/>

An then in the xml file itself I set:

<chapter icon="advanced">
<title>Advanced Settings</title>
where "advanced" is the name of the PNG file in the 'images' folder. The 
question is how I can pass the variable icon value (in this case "advanced") 
to  my chapter template.

Thanks in advance!

I would like to dynamically add an icon before a chapter title, with a 
possibility to change the icon file's name in the XML file itself, and not 
in the stylesheet. I would like to add the icon's filename in the chapter's 
tag itself (e.g. <chapter icon="internetconn"> and to pass this filename to 
the template that will add it to the rest of the file path (eg, 
concatenate('/images', @icon, '.png')

Please advise, how to extract the value of the "icon" variable and pass it 
to the "concatenate" part of the <fo-external graphic> template?

Thanks a lot!

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