[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [docbook] Highlighting complete areas in DocBook
Interesting idea about the nesting. Be careful of relying on too many colors if some users are color blind.
I'm afraid you can't match * or it will break when someone does <listitem role="highlight"> and several other elements that can't be wrapped in a fo:block.
David
> -----Original Message-----
> From: Tobias Anstett [k15t.com] [mailto:tobias@k15t.com]
> Sent: Monday, March 09, 2009 8:14 AM
> To: David Cramer
> Cc: docbook@lists.oasis-open.org
> Subject: Re: [docbook] Highlighting complete areas in DocBook
>
> Hi David,
>
> thanks a lot for this example. I took your input and created
> some alternative approach:
>
> <xsl:template match="*[@role='highlight']" priority="10">
> <xsl:variable name="count">
> <xsl:value-of
> select="count(ancestor::node()[@role='highlight'])"/>
> </xsl:variable>
> <fo:block>
> <xsl:attribute name="background-color">
> <xsl:choose>
> <!-- first level -->
> <xsl:when test="$count
> = 0">blue</xsl:when>
> <!-- second level -->
> <xsl:when test="$count
> = 1">green</xsl:when>
> <!-- third level -->
> <xsl:when test="$count
> = 2">purple</xsl:when>
>
> <xsl:otherwise>orange</xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
> <xsl:apply-imports />
> </fo:block>
> </xsl:template>
>
> I will test both approaches (yours and mine) with complex
> nestings of elements with the role=highlight attribute. What
> do you think about?
>
> Cheers, Tobias
>
> On Sun, Mar 8, 2009 at 10:40 PM, David Cramer
> <dcramer@motive.com> wrote:
> > To avoid needing to customize tons of templates, I do the following
> > for that situation. This allows us to add role="highlight" to any
> > element and have it be highlighted yellow. This needs to be in a
> > customization layer that imports the docbook xsls because
> it relies on
> > doing an
> > xsl:apply-imports:
> >
> > For html (assuming you have something like .remark{ background:
> > yellow; } in your css):
> >
> > <xsl:template match="text()[ ancestor::*/@role =
> 'highlight' ] | xref[
> > ancestor::*/@role = 'highlight' ]" priority="10"><span
> > class="remark"><xsl:apply-imports/></span></xsl:template>
> >
> > And for fo:
> >
> > �<xsl:template match="text()[ ancestor::*/@role = 'highlight' ] |
> > xref[ ancestor::*/@role = 'highlight' ]" priority="10">
> > � � � �<fo:inline xmlns:fo="http://www.w3.org/1999/XSL/Format"
> > background-color="yellow"><xsl:apply-imports/></fo:inline>
> > �</xsl:template>
> >
> > David
> >
> >> -----Original Message-----
> >> From: Tobias Anstett [k15t.com] [mailto:tobias@k15t.com]
> >> Sent: Saturday, March 07, 2009 2:57 PM
> >> To: docbook@lists.oasis-open.org
> >> Subject: [docbook] Highlighting complete areas in DocBook
> >>
> >> Hi together,
> >>
> >> is there a way to highlight docbook elements in a generic way? I'd
> >> like to be able to put some extra attribute or pi to any docbook
> >> element to highlight it e.g. set the background color of a para
> >> (resulting fo:block) to red for PDF output. I already had
> a look at
> >> the change highlighting documented at
> >> http://www.sagehill.net/docbookxsl/Changebars.html, but
> because i am
> >> using Apache FOP i need some other mechanism to highlight docbook
> >> elements (and it childs) ranging from para, admonition,
> >> programmlistings, table, etc. to table.
> >>
> >> Cheers, Tobias
> >>
> >>
> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: docbook-unsubscribe@lists.oasis-open.org
> >> For additional commands, e-mail: docbook-help@lists.oasis-open.org
> >>
> >>
> >
>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]