The tocjs DITA-OT plug-in and its more recent enhancement named tocjsbis generate a JavaScript-based table of contents page for any DITA topics that you reference in your .ditamap file.
These plug-ins are very popular in the DITA community; we even use them on the DITA Technical Committee for our DITA 1.2 specifications.
If you are generating HTML output of any sort from your DITA sources, you should test one or both of these plug-ins. I use tocjsbis in my context-sensitive Help builds where I work. To the extent that the tree control in tocjs and tocjsbis are based on the Yahoo tree control library, you can customize the way that the final TOC tree displays and behaves in your Help system. They can be tricky, but customizations work.
The tocjs and tocjsbis plug-ins are free downloads from the Yahoo DITA-OT site.
http://tech.groups.yahoo.com/group/dita-users/files/Demos/
After you have unzipped these archives to a local directory, you can browse the documentation to get a feel for what tocjs offers and how you can install it in your DITA-OT directory.
The pre-built documentation for tocjs lives in the /docs subdirectory.
Installing tocjs or tocjsbis is very straightforward.
ant -f integrator.xml
ant -f demo/tocjs/buildsample.xml sample2tocjs
If you are considering customizations to tocjs or tocjsbis, consult the documentation for the Yahoo UI tree control at the following URL.
http://developer.yahoo.com/yui/treeview/
That is about all that is involved with installing and configuring tocjs and tocjsbis.
These plug-ins piggy-back whatever investment you have already made in authoring your DITA topics and map files. Beyond setting up a new ant script for tocjs or tocjsbis, there is nothing additional required.
The tocjs and tocjs plug-ins present few integration problems or opportunities, especially as regards managing context sensitivity between Help output and the calling software application. Many DITA Help writers customize the frameset.html file that ships with the tocjs plug-in to personalize or brand the final product. Here's what Shawn McKenzie does with tocjs on his Sophos corporate website.
Wrapping other navigational devices around the tocjs output is not difficult. I add the conventional tabs for tri-pane Help systems.
In terms of translation, note that all the text strings associated with entries in the TOC tree are stored in one file named toctree.js. These files can be localized, for sure, but they are not very friendly. To make life easier on our sisters and brothers in L10N, you can post-edit this toctree.js file to swap JavaScript resource strings for literal strings.
If you are comfortable customizing XHTML output to build an HTML-based help system, you should consider tocjs and tocjsbis. They are sufficiently lightweight to work in Help systems or web-based portals.
Stan Doherty
Individual
OASIS DITA Technical Committee
OASIS DITA Help Subcommittee