OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook message

[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]