jquery.toc.min.js
/*! Table of Contents jQuery Plugin - jquery.toc * Copyright 2013 Nikhil Dabas * http://www.apache.org/licenses/LICENSE-2.0 */
(function(t){"use strict";var n=function(n){return this.each(function(){var i,e,a=t(this),c=a.data(),o=[a],h=this.tagName,r=0;i=t.extend({content:"body",headings:"h1,h2,h3"},{content:c.toc||void 0,headings:c.tocHeadings||void 0},n),e=i.headings.split(","),t(i.content).find(i.headings).attr("id",function(n,i){return i||t(this).text().replace(/^[^A-Za-z]*/,"").replace(/[^A-Za-z0-9]+/g,"_")}).each(function(){var n=t(this),i=t.map(e,function(t,i){return n.is(t)?i:void 0})[0];if(i>r){var a=o[0].children("li:last")[0];a&&o.unshift(t("<"+h+"/>").appendTo(a))}else o.splice(0,Math.min(r-i,Math.max(o.length-1,0)));t("<li/>").appendTo(o[0]).append(t("<a/>").text(n.text()).attr("href","#"+n.attr("id"))),r=i})})},i=t.fn.toc;t.fn.toc=n,t.fn.toc.noConflict=function(){return t.fn.toc=i,this},t(function(){n.call(t("[data-toc]"))})})(window.jQuery);