[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [Libvir] PATCH: Autogenerate table of contents for docs
- From: Daniel Veillard <veillard redhat com>
- To: "Daniel P. Berrange" <berrange redhat com>
- Cc: libvir-list redhat com
- Subject: Re: [Libvir] PATCH: Autogenerate table of contents for docs
- Date: Wed, 30 Apr 2008 10:14:58 -0400
On Wed, Apr 30, 2008 at 02:05:12PM +0100, Daniel P. Berrange wrote:
> Alot of the docs pages have manually written table of contents linking to
> headings with the page. I figured this is a good candidate for being
> auto-generated.
>
> The basic idea is that given a document with a series of headings
>
> <h2><a name="xxx">Foo</a></h2>
> ..
> <h3><a name="xxx">Bar</a></h3>
> ..
> <h3><a name="xxx">Wizz</a></h3>
> ..
> <h2><a name="xxx">Oooh</a></h2>
> ..
> <h3><a name="xxx">Ahhh</a></h3>
>
> Then, generate a table of contents with a nested set of lists <ul>. THe
> XSL below attempts todo this for heading levels h2 -> h6, and splices the
> TOC into the page where it sees an <ul id='toc'></ul> element (typically
> just after <h1>).
>
> I'm kind of out of practice with XSL, so there's probably a nicer way
> to write the 'toc' template below...
Yeah, it look weird but since:
1/ the HTML is flat you can't base counting more on structure
2/ h2/h3/h4/h5/h6 are not a real subsetting pattern you can't
use recursion
one suggestion, instead of
<a href="#{a/@name}"><xsl:value-of select="a/text()"/></a>
at each level, use something like
<a href="#{a/@name}"><xsl:text><xsl:value-of select="string(a)"/></xsl:text></a>
to still capture text if the header is not just made of a single text node.
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]