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] generating javascript navigation


Hi,

 

you can have a look at our website: http://www.aipsafe.cz/files/tutorial/frame.html.

 

Greetings,

Pavel

 

 

-----Original Message-----
From: David Cramer [mailto:dcramer@motive.com]
Sent: Thursday, April 17, 2008 5:39 PM
To:
Skopik Pavel; docbook-apps@lists.oasis-open.org
Subject: RE: [docbook-apps] generating javascript navigation

 

What else do you have to do to use this? Is there an example of the output I could look at?

 

Thanks,

David

 


From: Skopik Pavel [mailto:Pavel.Skopik@aipsafe.cz]
Sent:
Thursday, April 17, 2008 5:21 AM
To: docbook-apps@lists.oasis-open.org
Subject: RE: [docbook-apps] generating javascript navigation

Hello,

 

It seems that I have figured it out. The stylesheet bellow now generates the file with javascript tree contaning the table of contents.

 

Greetings,

Pavel �kop�k

 

<xsl:import href="“chunk.xsl"/>

 

��� <xsl:template match="/">

������� <xsl:choose>

������� ����<xsl:when

��������������� test="(function-available('exsl:node-set') or

��������������� contains(system-property('xsl:vendor'),

��������������� 'Apache Software Foundation'))

��������������� and (*/self::ng:* or */self::db:*)">

��������������� <xsl:call-template name="log.message">

������������������� <xsl:with-param name="level">Note</xsl:with-param>

������������������� <xsl:with-param name="context-desc">

����������������������� <xsl:text>namesp. cut</xsl:text>

������������������� </xsl:with-param>

������������������<xsl:with-param name="message">

����������������������� <xsl:text>stripped namespace before processing</xsl:text>

������������������� </xsl:with-param>

��������������� </xsl:call-template>

��������������� <xsl:variable name="nons">

����� ��������������<xsl:apply-templates mode="stripNS"/>

��������������� </xsl:variable>

��������������� <xsl:call-template name="log.message">

������������������� <xsl:with-param name="level">Note</xsl:with-param>

������������������� <xsl:with-param name="context-desc">

����������������������� <xsl:text>namesp. cut</xsl:text>

������������������� </xsl:with-param>

������������������� <xsl:with-param name="message">

����������������������� <xsl:text>processing stripped document</xsl:text>

������������������� </xsl:with-param>

��������������� </xsl:call-template>

��������������� <xsl:apply-templates select="exsl:node-set($nons)"/>

����������� </xsl:when>

����������� <xsl:otherwise>

��������������� <xsl:choose>

������������������� <xsl:when test="$rootid != ''">

���������������������� <xsl:choose>

��������������������������� <xsl:when test="count(key('id',$rootid)) = 0">

������������������������������� <xsl:message terminate="yes">

����������������������������������� <xsl:text>ID '</xsl:text>

�������������������� ���������������<xsl:value-of select="$rootid"/>

����������������������������������� <xsl:text>' not found in document.</xsl:text>

������������������������������� </xsl:message>

��������������������������� </xsl:when>

��������������������������� <xsl:otherwise>

������������������������������� <xsl:if

����������������������������������� test="$collect.xref.targets = 'yes' or

����������������������������������� $collect.xref.targets = 'only'">

����������������������������������� <xsl:apply-templates select="key('id', $rootid)"

��������������������������������������� mode="collect.targets"/>

������������������������������� </xsl:if>

������������������������������� <xsl:if test="$collect.xref.targets != 'only'">

����������������������������������� <xsl:message>Formatting from <xsl:value-of select="$rootid"/></xsl:message>

����������������������������������� <xsl:apply-templates select="key('id',$rootid)"

��������������������������������������� mode="process.root"/>

����������������������������������� <xsl:call-template name="jstoc"/>

������������������������������� </xsl:if>

��������������������������� </xsl:otherwise>

����������������������� </xsl:choose>

������������������� </xsl:when>

������������������� <xsl:otherwise>

����������������������� <xsl:if

��������� ������������������test="$collect.xref.targets = 'yes' or

��������������������������� $collect.xref.targets = 'only'">

��������������������������� <xsl:apply-templates select="/" mode="collect.targets"/>

����������������������� </xsl:if>

������������������ �����<xsl:if test="$collect.xref.targets != 'only'">

��������������������������� <xsl:apply-templates select="/" mode="process.root"/>

��������������������������� <xsl:call-template name="jstoc"/>

����������������������� </xsl:if>

������������������� </xsl:otherwise>

��������������� </xsl:choose>

����������� </xsl:otherwise>

������� </xsl:choose>

��� </xsl:template>

 

��� <xsl:template match="text()" mode="jstoc"/>

 

��� <!—template for creating javascript tree file -->

��� <xsl:template name="jstoc">

������ <xsl:call-template name="write.chunk">

����������� <xsl:with-param name="filename">

��������������� <xsl:if test="$manifest.in.base.dir != 0">

������������������� <xsl:value-of select="$base.dir"/>

��������������� </xsl:if>

��������������� <xsl:value-of select="'toctree.js'"/>

����������� </xsl:with-param>

����������� <xsl:with-param name="method" select="'text'"/>

����������� <xsl:with-param name="encoding" select="'windows-1250'"/>

����������� <xsl:with-param name="indent" select="'yes'"/>

����������� <xsl:with-param name="content">

�������������������������������������������

������������������������������������������� <!—javascript code which draws the tree -->

��������������� <xsl:text>

������������������� var tree;

�������������������

������������������� function treeInit() {

������������������� tree = new YAHOO.widget.TreeView("treeDiv1");

������������������� var root = tree.getRoot();

��������������� </xsl:text>

 

�����������

 

��������������� <xsl:apply-templates mode="jstoc"/>

��������������� <xsl:text>

������������������� tree.draw();

������������������� }

��������������� ����

������������������� YAHOO.util.Event.addListener(window, "load", treeInit);

��������������� </xsl:text>

����������� </xsl:with-param>

������� </xsl:call-template>

��� </xsl:template>

 

 

��� <!-- this template generate nodes of the javascript tree-->

��� <xsl:template match="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="jstoc">

 

������� <xsl:param name="current.node" select="."/>

�������

����� ��<xsl:variable name="objID" select="generate-id()"/>

�����������

������� <!-- let's find out if current node is a root node; if not it gets the ‘root’ value, otherwise id of parent node is generated -->

������� <xsl:variable name="parentID">

����������� <xsl:if test="$current.node = /">

��������������� <xsl:value-of select="'root'"/>

����������� </xsl:if>

����������� <xsl:if test="$current.node != /">

��������������� <xsl:value-of select="generate-id(parent::*)"/>

����������� </xsl:if>

������� </xsl:variable>

��������������������

������� <xsl:variable name="title">

����������� <xsl:apply-templates select="." mode="title.markup"/>

������� </xsl:variable>

����

��������

������� <xsl:variable name="href">

����������� <xsl:call-template name="href.target.with.base.dir">

������������� ��<xsl:with-param name="context" select="/"/>

����������� </xsl:call-template>

������� </xsl:variable>

�������

������� <!—javascript tree nodes -->

������� <xsl:text>var </xsl:text>

������� <xsl:value-of select="concat('obj', $objID)"/>

������� <xsl:text> = { label: "</xsl:text>

������� <xsl:value-of select="normalize-space($title)"/>

������� <xsl:text>", href:"</xsl:text>

������� <xsl:value-of select="$href"/>

������� <xsl:text>", target:"content"};</xsl:text>

�������

������� <xsl:text>var </xsl:text>

������<xsl:value-of select="$objID"/>

������� <xsl:text> = new YAHOO.widget.TextNode(</xsl:text>

������� <xsl:value-of select="concat('obj', $objID)"/>

������� <xsl:text>, </xsl:text>

������� <xsl:value-of select="$parentID"/>

������� <xsl:text>, false);</xsl:text>

������� <xsl:apply-templates mode="jstoc" select="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index"/>

��� </xsl:template>



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