]> git.proxmox.com Git - pve-docs.git/blobdiff - asciidoc/asciidoc.js
asciidoc.js: use mediawiki resource loader queue
[pve-docs.git] / asciidoc / asciidoc.js
index 5882248492cc64fc781c106dcd784da1bee14662..fa71f7576d416cbe4cbec49046fa35806237997f 100644 (file)
@@ -7,9 +7,42 @@
 
 var asciidoc = {
 
 
 var asciidoc = {
 
+    // toc generator
+    toc: function () {
+       var tocholder = jQuery("#toc");
+       if (!tocholder) {
+           return;
+       }
+
+       tocholder.html('');
+       tocholder.hide();
+
+       var html = "<div id=\"toctitle\"><h2>Contents</h2></div><ul>";
+
+       var n = 0;
+       jQuery("#asciidoccontent div.sect1").each(function(){
+           var h = jQuery(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 () {
     // footnote generator
     footnotes: function () {
-       var noteholder = $("#footnotes");
+       var noteholder = jQuery("#footnotes");
        if (!noteholder) {
            return;
        }
        if (!noteholder) {
            return;
        }
@@ -21,9 +54,9 @@ var asciidoc = {
        var n = 0;
        var inner_html = '';
 
        var n = 0;
        var inner_html = '';
 
-       $("#asciidoccontent span.footnote").each(function(){
+       jQuery("#asciidoccontent span.footnote").each(function(){
            n++;
            n++;
-           var span = $(this);
+           var span = jQuery(this);
            var note = span.attr("data-note");
            var id = span.attr("id");
            if (!note) {
            var note = span.attr("data-note");
            var id = span.attr("id");
            if (!note) {
@@ -47,8 +80,8 @@ var asciidoc = {
     
        if (n != 0) {
            // process footnoterefs.
     
        if (n != 0) {
            // process footnoterefs.
-           $("#asciidoccontent span.footnoteref").each(function(){
-               var span = $(this);
+           jQuery("#asciidoccontent span.footnoteref").each(function(){
+               var span = jQuery(this);
                var href = span.find("a").first().attr("href");
                href = href.match(/#.*/)[0];  // in case it return full URL.
                n = refs[href];
                var href = span.find("a").first().attr("href");
                href = href.match(/#.*/)[0];  // in case it return full URL.
                n = refs[href];
@@ -59,7 +92,8 @@ var asciidoc = {
     }
 };
 
     }
 };
 
-$(document).ready(function(){
+// add init to mediawiki resource loader queue
+(window.RLQ=window.RLQ||[]).push(function(){
     asciidoc.footnotes();
     asciidoc.footnotes();
+    asciidoc.toc();
 });
 });
-