Date: 02/04/03
- Next message: Damien Seguy: "[PHP-DOC] cvs: phpdoc /en/reference/array/functions array-fill.xml array-flip.xml array-map.xml array-merge.xml array-push.xml array-shift.xml array-values.xml array.xml each.xml extract.xml range.xml usort.xml"
- Previous message: surak <email protected>: "[PHP-DOC] #22049 [NEW]: Put free pdf class on documentation"
- In reply to: Jirka Kosek: "Re: [PHP-DOC] Someone that can help w/ our XSLT stylesheets"
- Next in thread: Gabor Hojtsy: "Re: [PHP-DOC] Someone that can help w/ our XSLT stylesheets"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thanks for the code, I'll test it this week.
Goba
>>OK, so what we would like to is to limit the toc deepness to a specific
>>number of levels, regardless of what tags are used to build up any level
>>in the XML source. Last time I checked there was no solution for this.
>>My eyes stopped on that explicit TOC specification, but no docs exist
>>for that, so I have not gone deeper into that... Then I'll submit an RFE...
>
>
> Try to add following to your customization file:
>
> <xsl:param name="toc.max.depth" select="3"/> <!-- or maybe 4, 5,
> depending on your needs -->
>
> <xsl:template name="subtoc">
> <xsl:param name="toc-context" select="."/>
> <xsl:param name="nodes" select="NOT-AN-ELEMENT"/>
>
> <xsl:variable name="subtoc">
> <xsl:element name="{$toc.list.type}">
> <xsl:apply-templates mode="toc" select="$nodes">
> <xsl:with-param name="toc-context" select="$toc-context"/>
> </xsl:apply-templates>
> </xsl:element>
> </xsl:variable>
>
> <xsl:variable name="absolute.depth" select="count(ancestor::*)"/>
>
> <xsl:variable name="depth">
> <xsl:choose>
> <xsl:when test="local-name(.) = 'section'">
> <xsl:value-of select="count(ancestor::section) + 1"/>
> </xsl:when>
> <xsl:when test="local-name(.) = 'sect1'">1</xsl:when>
> <xsl:when test="local-name(.) = 'sect2'">2</xsl:when>
> <xsl:when test="local-name(.) = 'sect3'">3</xsl:when>
> <xsl:when test="local-name(.) = 'sect4'">4</xsl:when>
> <xsl:when test="local-name(.) = 'sect5'">5</xsl:when>
> <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when>
> <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when>
> <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when>
> <xsl:when test="local-name(.) = 'simplesect'">
> <!-- sigh... -->
> <xsl:choose>
> <xsl:when test="local-name(..) = 'section'">
> <xsl:value-of select="count(ancestor::section)"/>
> </xsl:when>
> <xsl:when test="local-name(..) = 'sect1'">2</xsl:when>
> <xsl:when test="local-name(..) = 'sect2'">3</xsl:when>
> <xsl:when test="local-name(..) = 'sect3'">4</xsl:when>
> <xsl:when test="local-name(..) = 'sect4'">5</xsl:when>
> <xsl:when test="local-name(..) = 'sect5'">6</xsl:when>
> <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when>
> <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when>
> <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when>
> <xsl:otherwise>1</xsl:otherwise>
> </xsl:choose>
> </xsl:when>
> <xsl:otherwise>0</xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:variable name="subtoc.list">
> <xsl:choose>
> <xsl:when test="$toc.dd.type = ''">
> <xsl:copy-of select="$subtoc"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:element name="{$toc.dd.type}">
> <xsl:copy-of select="$subtoc"/>
> </xsl:element>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:element name="{$toc.listitem.type}">
> <xsl:variable name="label">
> <xsl:apply-templates select="." mode="label.markup"/>
> </xsl:variable>
> <xsl:copy-of select="$label"/>
> <xsl:if test="$label != ''">
> <xsl:value-of select="$autotoc.label.separator"/>
> </xsl:if>
>
> <a>
> <xsl:attribute name="href">
> <xsl:call-template name="href.target">
> <xsl:with-param name="context" select="$toc-context"/>
> </xsl:call-template>
> </xsl:attribute>
> <xsl:apply-templates select="." mode="title.markup"/>
> </a>
> <xsl:if test="$toc.listitem.type = 'li'
> and $toc.section.depth > $depth and count($nodes)>0
> and $toc.max.depth > $absolute.depth">
> <xsl:copy-of select="$subtoc.list"/>
> </xsl:if>
> </xsl:element>
> <xsl:if test="$toc.listitem.type != 'li'
> and $toc.section.depth > $depth and count($nodes)>0
> and $toc.max.depth > $absolute.depth">
> <xsl:copy-of select="$subtoc.list"/>
> </xsl:if>
> </xsl:template>
>
> Let me know, if it works. I think that it should work. If so, I will
> propagate this change to standard stylesheets (maybe with different
> parameter name, but that is not so important).
>
> Jirka
>
-- PHP Documentation Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
- Next message: Damien Seguy: "[PHP-DOC] cvs: phpdoc /en/reference/array/functions array-fill.xml array-flip.xml array-map.xml array-merge.xml array-push.xml array-shift.xml array-values.xml array.xml each.xml extract.xml range.xml usort.xml"
- Previous message: surak <email protected>: "[PHP-DOC] #22049 [NEW]: Put free pdf class on documentation"
- In reply to: Jirka Kosek: "Re: [PHP-DOC] Someone that can help w/ our XSLT stylesheets"
- Next in thread: Gabor Hojtsy: "Re: [PHP-DOC] Someone that can help w/ our XSLT stylesheets"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

