Skip to content

Instantly share code, notes, and snippets.

@hjue
Created March 18, 2014 10:00
Show Gist options
  • Select an option

  • Save hjue/9617024 to your computer and use it in GitHub Desktop.

Select an option

Save hjue/9617024 to your computer and use it in GitHub Desktop.
md文档生成目录(Toc)
<style type="text/css">
#toc ul {margin: 0}
#toc>ul {padding:0}
li.decimal {list-style-type: decimal;}
li.lroman {list-style-type: lower-roman;}
li.lalpha {list-style-type: lower-alpha;}
li,li.square {list-style-type: square}
</style>
<script>
window.onload = function () {
var toc = "";
var level = 0;
document.getElementsByTagName("body")[0].innerHTML =
document.getElementsByTagName("body")[0].innerHTML.replace(
/<h([2-5])>([^<]+)<\/h([\d])>/gi,
function (str, openLevel, titleText, closeLevel) {
if (openLevel != closeLevel) {
return str;
}
if (openLevel > level) {
toc += (new Array(openLevel - level + 1)).join("<ul>");
} else if (openLevel < level) {
toc += (new Array(level - openLevel + 1)).join("</ul>");
}
level = parseInt(openLevel);
var anchor = titleText.replace(/ /g, "_");
var classname = '';
switch(level)
{
case 2:
classname = 'decimal';
break;
case 3:
classname = 'lroman';
break;
case 4:
classname = 'lalpha';
break;
}
toc += "<li class='"+classname+"'><a href=\"#" + anchor + "\">" + titleText
+ "</a></li>";
return "<h" + openLevel + "><a name=\"" + anchor + "\">"
+ titleText + "</a></h" + closeLevel + ">";
}
);
if (level) {
toc += (new Array(level + 1)).join("</ul>");
}
document.getElementById("toc").innerHTML += toc;
};
</script>
<div id="toc">
<h1>目录</h1>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment