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] passing attributes from an ARTICLE element to an HTML element

Hi Robert,
To insert an id attribute in the <html> element, you'll need to customize the template 
named 'chunk-element-content' in xhtml/chunk-common.xsl.  That is where the <html> 
element is generated.  You could add a template call after the opening <html> to 
insert any attributes.  Since that template is used for all chunks, I would suggest 
using a mode to just change article:

[in customized chunk-element-content]
  <xsl:apply-templates select="." mode="html.root.attributes"/>

where mode="html.root.attributes" is new for your purposes.  You would create a 
general template that does nothing, and a special one for article:

<!-- for all other elements do nothing -->
<xsl:template match="*" mode="html.root.attributes"/>

<!-- for article, add two attributes -->
<xsl:template match="d:article" mode="html.root.attributes">
  <xsl:attribute name="id">
    <xsl:call-template name="object.id"/>
  <xsl:attribute name="lang">
    <xsl:call-template name="l10n.language"/>

To avoid the duplicate id on the div, you need to customize the template that matches 
on d:article in xhtml/component.xsl.  After the opening <div> tag, it calls a template 
named 'common.html.attributes', and then generates the id attribute.  Delete the id 
part and that should do it.

When you customize the d:article template, be aware that you must follow the 
guidelines for customizing chunked output, and put it in a separate customization 
layer that imports docbook.xsl.  That's because the template in component.xsl is not a 
chunking template, it is a template for element formatting.  If you don't separate 
them, you probably won't get output for your article.  See this reference for details:


Bob Stayton
Sagehill Enterprises

----- Original Message ----- 
From: "Robert Pasternak" <rp.info@gmail.com>
To: <docbook-apps@lists.oasis-open.org>
Sent: Friday, February 25, 2011 12:57 AM
Subject: [docbook-apps] passing attributes from an ARTICLE element to an HTML element

> Hi
> My Docbook based project has a modular structure, where each xml file
> starts with an article element. Each article element specifies two
> attributes: xml:id and xml:lang. For HTML output I use the
> xhtml/profile-chunk.xsl transformation, and each article  is
> transformed into a standalone html file. The two attributes are added
> to the div element containing the contents of the article, however I
> would like these two attributes to be added to the enclosing html
> element. And so, the first question is how to do that, and the second
> is how to remove the xml:id attribute from the div element, so there
> are no duplicated ids within the single html file.
> Thanks,
> Robert
> ---------------------------------------------------------------------
> 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]