add simple toc generator for wiki pages
authorDietmar Maurer <dietmar@proxmox.com>
Sat, 22 Oct 2016 10:02:36 +0000 (12:02 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Sat, 22 Oct 2016 10:24:39 +0000 (12:24 +0200)
asciidoc/asciidoc.js
asciidoc/mediawiki.conf

index 5882248..80d0f03 100644 (file)
@@ -7,6 +7,39 @@
 
 var asciidoc = {
 
+    // toc generator
+    toc: function () {
+       var tocholder = $("#toc");
+       if (!tocholder) {
+           return;
+       }
+
+       tocholder.html('');
+       tocholder.hide();
+
+       var html = "<div id=\"toctitle\"><h2>Contents</h2></div><ul>";
+
+       var n = 0;
+       $("#asciidoccontent div.sect1").each(function(){
+           var h = $(this).find("h2").first();
+           var id = h.attr("id");
+           if (id != null) {
+               n++;
+               html += "<li class=\"toclevel-1\">" +
+                   "<a href=\"#" + id + "\">" +
+                   "<span class=\"toctext\">" + h.html() +
+                   "</span></a></li>";
+           }
+       });
+
+       html += "</ul>";
+
+       if (n > 3) {
+           tocholder.html(html);
+           tocholder.show();
+       }
+    },
+
     // footnote generator
     footnotes: function () {
        var noteholder = $("#footnotes");
@@ -61,5 +94,6 @@ var asciidoc = {
 
 $(document).ready(function(){
     asciidoc.footnotes();
+    asciidoc.toc();
 });
 
index 5543429..549ce9d 100644 (file)
@@ -528,7 +528,8 @@ bodydata=<td class="tableblock halign-{colalign=left}">|</td>
 </div>
 
 [toc]
-<!-- FIXME: TOC -->
+<div id="toc" class="toc">
+</div>
 
 [header]
 <!-- asciidoc HEADER -->