hierarchie v <bridgehead> pomocí renderas

Tomas.Waller Tomas.Waller na seznam.cz
Pondělí Červenec 12 09:37:29 CEST 2010


Dobrý den!

Chtěl bych zavést v <bridgehead> stejnou hierarchii, jako by to byly vnořené elementy, pomocí atributů renderas="sect1" atd. 
Zatím mám veškeré číslování těchto <bridgehead> v obsahu, záložkách apod. 

Ale číslují se mi průběžně přes všechny bridgehead. 

Potřeboval bych to takto hierarchicky. Mám-li elementy:

<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect1">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
<bridgehead renderas="sect2">nadpis</bridgehead>
...
chtěl bych strukturu číslování:

třeba 
2.8.1 (pro první renderas="sect1")
2.8.1.1 (pro první renderas="sect2 po prvním renderas="sect1")
2.8.1.2 (pro druhé renderas="sect2 po prvním renderas="sect1")
2.8.2 (pro druhé renderas="sect1")
2.8.2.1 (pro první renderas="sect2 po druhém renderas="sect1")
2.8.2.2 (pro druhé renderas="sect2 po druhém renderas="sect1")


Zatím mám vše až po 2.8.1
detailnější strukturu mám tedy
2.8.1
2.8.1.x
2.8.1.x
2.8.2
2.8.2.x
2.8.2.x
ale tato "x" nedokážu nastavit, aby se počítala vždy od vyšší úrovně, tedy v tomto případě od renderas="sect1".
pro tyto renderas="sect2" získám label "vyššího elementu pomocí volání 

<xsl:apply-templates select="preceding-sibling::bridgehead[@renderas = 'sect1'][1]" mode="label.markup"/>

, což je snad správně, jen tu nejnižší úroveň nedokážu dodělat.

potřeboval bych pro každý element s atributem renderas="sect2" zjistit pozici přecházejícího elementu 

<bridgehead renderas="sect1">, 

což ale neumím. 

Pokud se nepletu, je to element preceding-sibling::bridgehead[@renderas = 'sect1'][1]

Jak to udělat? Jak spočítat jeho pozici uvnitř rodiče? (position.of.higher.within.parent)

<xsl:number format=... value="count(preceding-sibling::bridgehead) + 1 - $position.of.higher.within.parent"/>

Jak tedy zjistit tuto $position.of.higher.within.parent?

(Pro hlubší úrovně bych měl obdobně elementy s renderas="sect4" a před nimi nejbližší renderas="sect3" apod.)

Pro vzhled nadpisů bych raději vyčlenil atribut role.

Děkuji za radu.

Tomáš Waller



Další informace o konferenci Docbook