Hi Dick,
Regarding the code where sortas is handled, it is handled entirely in an
index key, which limits the kind of customization you can do. The key for
primary looks like this after the entity reference is resolved:
<xsl:key name="primary"
match="indexterm"
use="normalize-space(concat(primary/@sortas, " ", primary))"
The @use attribute can only use an expression, not a call to a template that
could do multistep processing of the indexterm. This key uses a bit of a
trick. The @use attribute concatenates @sortas if it exists, a space, and
the primary text. If @sortas is empty, then it concats space and primary,
but the normalize-space function removes the leading space, leaving just the
primary.
This key is used for selecting matching indexterms, and the same expression
is used for sorting them. If @sortas is present then it will sort on that,
otherwise it sorts on primary. The actual presentation comes from the
indexterm elements themselves, not the key.
Jirka's suggestion for a profiling pass to populate @sortas automates your
first suggestion.
Bob Stayton
Sagehill Enterprises
[email protected]
--------------------------------------------------
From: "Richard Hamilton" <[email protected]>
Sent: Sunday, December 09, 2012 2:29 PM
To: "Stefan Seefeld" <[email protected]>
Cc: "DocBook Apps Mailing List" <[email protected]>
Subject: Re: [docbook-apps] customizing index generation
Stefan,
The brute force way (though it wouldn't take much of an xsl script to do
it) would be to add a sortas attribute to each term. It might also be
worth checking out the code where sortas is handled and see if that's a
convenient place to sneak in a customization. I've never looked at that
code, so that may be a totally impractical suggestion:-).
Dick
-------
XML Press
XML for Technical Communicators
http://xmlpress.net
[email protected]
On Dec 9, 2012, at 1:59 PM, Stefan Seefeld wrote:
Hello,
I'm writing an API reference manual for a library, whose symbols all
start with a common prefix. Having added one indexterm per symbol, the
generated index now contains a list with a single letter - the first
letter of the shared prefix.
So, having "foo_something" and "foo_other" would now generate a single
letter "F" under which both symbols are listed.
Is there a way to strip off the common prefix for purposes of index
generation only, that is without actually removing the prefix from the
indexed symbols themselves ?
So, The two symbols "foo_something" and "foo_other" above would end up
in two sections, the first under "S", the second under "O".
Is that possible ?
Thanks,
Stefan
--
...ich hab' noch einen Koffer in Berlin...
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]