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] Footnote title tags / visual classification


Hello Bob & everyone

> If you are using DocBook 5, you could use an <annotation> element to 
> contain the hover title.  You would need to write the XSL customization 
> to process the annotation, of course.  See this reference for more info:
> 
> http://www.sagehill.net/docbookxsl/Db5Tools.html#Db5Annotations

Thanks for that helpful clue (and indeed for your book :-) ).  Somewhat 
to my surprise (given I've not done much of this stuff), I've managed to 
make it do what I wanted!  in what I think is probably a fairly 
un-robust way, but OK for me since I'm the only one using this setup.

In case it's useful to anyone else, this is what I did...


In the XML document, I have

<footnote xml:id="whatever" role="ref">
   <annotation>
     <para>
       My title tag to appear on hover
     </para>
   </annotation>
   <para>
     ... footnote text ...
   </para>
</footnote>


Within <xsl:template match="footnote">, I have a new variable

<xsl:variable name="annotitle">
   <xsl:value-of select="child::annotation/para"/>
</xsl:variable>

And then when it gets to what would have been
<a name="{$name}" href="{$href}">

it's now
<a name="{$name}" href="{$href}" title="{$annotitle}">

so that's the hoverable title.


Then to toggle the bold & non bold, I'm using <footnote role="">, which 
can be either "material" or "ref" (for completeness/clarity, though in 
fact at the moment I'm only testing for the former and the latter is 
ignored.)

In the template I've doubled up one existing bit and used <xml:choose> 
to pick which one to use.

<xsl:choose>
   <xsl:when test="@role='material'"> <!-- bolded if footnote has 
additional material -->
     <sup>
       <b> <!-- new bit -->
         <xsl:text></xsl:text>
         <a name="{$name}" href="{$href}" title="{$annotitle}">
           <xsl:apply-templates select="." mode="class.attribute"/>
           <xsl:apply-templates select="." mode="footnote.number"/>
         </a>
         <xsl:text></xsl:text>
       </b> <!-- other new bit -->
     </sup>
   </xsl:when>
   <xsl:otherwise> <!-- no discussion, just a ref -->
... continues with same thing except without the bold tags.


What's unrobust about it that I already know:

1.  It ignores everything in the <annotation> except the first 
paragraph.  A title tag in HTML would only be one line anyway, so if 
there _were_ a load of other stuff in the annotation, ignoring it would 
be a fairly sensible course - but in an ideal world the editor would 
prevent me having other unusable stuff there, which it doesn't know to do.

2.  It doesn't use <annotation>'s identity linking - it knows which one 
goes with what only because it's inside <footnote>.  Which is OK given 
how I plan to use it.


If I've stored up other problems for myself doing it that way then feel 
free to tell me :-)


I haven't done anything about <footnoteref>s yet.  It would be nice to 
give those titles too, but then (i.i.u.c.) I'd have to work out 
addressing by id, as they don't have content where I could stick the 
<annotation>.


Jennifer

-- 
www.uncharted-worlds.org/blog/


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