blob: 39eb761f102205a42d34a9a734be7f612ec4542a [file] [log] [blame]
cmarrin72109442009-12-09 19:24:49 +00001function nextLevel(nodeList, startIndex, hlevel, prefix, tocString)
2{
3 var hIndex = 1;
4 var i = startIndex;
5
6 while (i < nodeList.length) {
7 var currentNode = nodeList[i];
8
9 if (currentNode.tagName != "H"+hlevel)
10 break;
11
12 if (currentNode.className == "no-toc") {
13 ++i;
14 continue;
15 }
16
17 var sectionString = prefix+hIndex;
18
19 // Update the TOC
20 var text = currentNode.innerHTML;
21 tocString.s += "<li class='toc-h"+hlevel+"'><a href='#"+sectionString+"'><span class='secno'>"+sectionString+"</span>"+text+"</a></li>\n";
22
23 // Modify the header
24 currentNode.innerHTML = "<span class=secno>"+sectionString+"</span> "+text;
25 currentNode.id = sectionString;
26
27 // traverse children
28 i = nextLevel(nodeList, i+1, hlevel+1, sectionString+".", tocString);
29 hIndex++;
30 }
31
32 return i;
33}
34
35function generateTOC(toc)
36{
37 var nodeList = $("h2,h3,h4,h5,h6");
38 var tocString = { s:"<ul class='toc'>\n" };
39 nextLevel(nodeList, 0, 2, "", tocString);
40 toc.innerHTML = tocString.s;
41}