设置自动生成目录
Tools-->options--Advanced--HTML Head Editor
将以下代码粘贴到以上内容框中
update by jdf in 2020/03
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
// 生成目录列表
var toc = document.createElement("ul");
toc.setAttribute("id", "table-of-content");
toc.style.cssText = "border: 1px solid #ccc;";
document.body.insertBefore(toc, document.body.childNodes[0]);
// 用于计算当前标题层级的栈,先进先出,从左到右每一个元素代表当前标题所在的层级索引,初始为空
var stack = new Array();
// 获取所有标题(h2-h6),h1作为主标题,h2为一级标题
var headers = document.querySelectorAll('h2,h3,h4,h5,h6');
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
// 计算标题级数,为后面计算标号及缩进空格准备
var level = parseInt(header.tagName.replace('H', ''), 10)-1;
// 通过两个where循环对栈进行调整,确保stack中标题级数与当前标题级数相同
while(stack.length < level){
stack.push(0);
}
while(stack.length > level){
stack.pop();
}
// 最小一级标题标号步进+1
stack[stack.length-1]++;
// 生成标题标号( 1.1,1.2.. )
var index = stack.join(".")
// 生成标题ID
var id = "title" + index;
header.setAttribute("id", id);
// 为标题加上标号,如果不希望显示标号,把下面这行注释就可以了
header.textContent = index + " " + header.textContent;
toc.appendChild(document.createElement("li"));
var a = document.createElement("a");
// 为目录项设置链接
a.setAttribute("href", "#" + id)
// 目录项文本前面放置缩进空格
a.innerHTML = new Array(level * 4).join(' ') + header.textContent;
toc.lastChild.appendChild(a);
}
});
</script>
激活码
Soar360@live.com
GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW8HUpTtLA2a5/sQytXJUQl/QKO0jUQY4pa5CCx20sV1ClOTZtAGngSOJtIOFXK599sBr5aIEFyH0K7H4BoNMiiDMnxt1rD8Vb/ikJdhGMMQr0R4B+L3nWU97eaVPTRKfWGDE8/eAgKzpGwrQQoDh+nzX1xoVQ8NAuH+s4UcSeQ==
自动目录生成
<script src="https://cdn.bootcss.com/raphael/2.2.7/raphael.min.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/flowchart/1.11.0/flowchart.js"></script>
<script>
//flowchart-js
window.onload=function()
{
var ht=$('.lang-flow').html();
if(!ht)
{
ht=$("pre[lang='flow'] code");
if(ht)
{
ht.addClass("lang-flow")
}
}
if(!ht)
return;
var drawFlowFunc=function(idx,$flow,flowObj)
{
var $parent=$flow.parent();
$flow.replaceWith('<textarea class="lang-flow'+idx+'">'+$flow.html()+'</textarea>');
$parent.hide();
$parent.after('<div id="canvas'+idx+'"></div>');
var cd=document.getElementsByClassName("lang-flow"+idx),chart;
(cd.change=function()
{
var code=cd[0].value;
if(chart)
{
chart.clean()
}
chart=flowchart.parse(code);
chart.drawSVG('canvas'+idx,
{
'line-width':3,
'maxWidth':3,
'line-length':50,
'text-margin':10,
'font-size':14,
'font':'normal',
'font-family':'Helvetica',
'font-weight':'normal',
'font-color':'black',
'line-color':'black',
'element-color':'black',
'fill':'white',
'yes-text':'yes',
'no-text':'no',
'arrow-end':'block',
'scale':1,
'symbols':{'start':{'font-color':'red','element-color':'green','fill':'yellow'},
'end':{'class':'end-element'}},
'flowstate':{'past':{'fill':'#CCCCCC','font-size':12},
'current':{'fill':'yellow','font-color':'red','font-weight':'bold'},
'future':{'fill':'#FFFF99'},
'request':{'fill':'blue'},
'invalid':{'fill':'#444444'},
'approved':{'fill':'#58C4A3',
'font-size':12,
'yes-text':'APPROVED',
'no-text':'n/a'},
'rejected':{'fill':'#C45879',
'font-size':12,
'yes-text':'n/a',
'no-text':'REJECTED'}}
})
})()
};
$('.lang-flow').each(function(idx,obj){drawFlowFunc(idx,$(obj),obj)})
};
//addCatelog--js
var showNavBar=true;
var expandNavBar=true;
function hasScrollbar()
{
return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)
}
$(document).ready(function(){
var h1s=$("body").find("h1");
var h2s=$("body").find("h2");
var h3s=$("body").find("h3");
var h4s=$("body").find("h4");
var h5s=$("body").find("h5");
var h6s=$("body").find("h6");
var headCounts=[h1s.length,h2s.length,h3s.length,h4s.length,h5s.length,h6s.length];
var vH1Tag=null;
var vH2Tag=null;
var isOnlyOneH1Tag=headCounts[0]==1&&(headCounts[1]>0||h3s.length>0);
var startTagLevel=isOnlyOneH1Tag?1:0;
for(var i=startTagLevel;i<headCounts.length;i++)
{
if(headCounts[i]>0)
{
if(vH1Tag==null)
{
vH1Tag='h'+(i+1)
}else if(vH2Tag==null){
vH2Tag='h'+(i+1)
}
}
}
if(vH1Tag==null)
{
return
}
$("body").prepend('<div class="BlogAnchor"><span style="color:red;position:absolute;top:-6px;left:0px;cursor:pointer;" onclick="$(\'.BlogAnchor\').hide();">×</span><p><b id="AnchorContentToggle" title="收起" style="cursor:pointer;">目录▲</b></p><div class="AnchorContent" id="AnchorContent"> </div></div>');
var hTagCountMap={h1:0,h2:0,h3:0,h4:0,h5:0,h6:0};
var vH1Index=0;
var vH2Index=0;
var tagInfo={};
var hitTags=[];
$("body").find("h1,h2,h3,h4,h5,h6").each(function(i,item)
{
var id='';
var name='';
var tag=$(item).get(0).tagName.toLowerCase();
hitTags.push(tag);
var className='';
className='item_'+tag;
if(tag==vH1Tag)
{
id=name=++vH1Index;name=id;
vH2Index=0
}else if(tag==vH2Tag){
id=vH1Index+'_'+ ++vH2Index;
name=vH1Index+'.'+vH2Index
}else{
if(hitTags.indexOf('h1')!=-1&&hitTags.indexOf('h2')!=-1)
{
className='item_'+tag
}
}
$(item).attr("id","wow"+id);
$(item).addClass("wow_head");
$("#AnchorContent").css('max-height',($(window).height()-180)+'px');
$("#AnchorContent").append('<li><a class="nav_item '+className+' anchor-link" onclick="return false;" href="#" link="#wow'+id+'">'+name+" · "+$(this).text()+'</a></li>')
});
$("#AnchorContentToggle").click(function()
{
var text=$(this).html();
if(text=="目录▲")
{
$(this).html("目录▼");
$(this).attr({"title":"展开"})
}else{
$(this).html("目录▲");
$(this).attr({"title":"收起"})
}
$("#AnchorContent").toggle()
});
var currentLink=null;
$(".anchor-link").click(function()
{
if(hasScrollbar())
{
$("html,body").animate({scrollTop:$($(this).attr("link")).offset().top},500);
currentLink={
el:this,top:$($(this).attr("link")).offset().top
}
}else{
$(".BlogAnchor li .nav_item.current").removeClass('current');
$(this).addClass('current')
}
});
var headerNavs=$(".BlogAnchor li .nav_item");
var headerTops=[];
setTimeout(function()
{
$(".wow_head").each(function(i,n){headerTops.push($(n).offset().top)})
},50);
$(window).scroll(function()
{
var scrollTop=$(window).scrollTop();
var headerTopsLen=headerTops.length;
$.each(headerTops,function(i,n)
{
var distance=n-scrollTop;
var isScrollBottom=(scrollTop==$(document).height()-$(window).height());
if(distance>=0)
{
if(i>0&&!isScrollBottom&&headerTopsLen>2)
{
i--
}
$(".BlogAnchor li .nav_item.current").removeClass('current');
$(headerNavs[i]).addClass('current');
return false
}
if(isScrollBottom)
{
$(".BlogAnchor li .nav_item.current").removeClass('current');
$(headerNavs[headerNavs.length-1]).addClass('current');
return false
}
});
if(currentLink&¤tLink.top==scrollTop)
{
$(".BlogAnchor li .nav_item.current").removeClass('current');$(currentLink.el).addClass('current');
currentLink=null;return false
}
});
if(!showNavBar)
{
$('.BlogAnchor').hide()
}
if(!expandNavBar)
{
$(this).html("目录▼");
$(this).attr({"title":"展开"});
$("#AnchorContent").hide()
}
});
function addNewStyle(newStyle)
{
var styleElement=document.getElementById('styles_js');
if(!styleElement)
{
styleElement=document.createElement('style');
styleElement.type='text/css';
styleElement.id='styles_js';
document.getElementsByTagName('head')[0].appendChild(styleElement)
}styleElement.appendChild(document.createTextNode(newStyle))
}
//addCatelog--js
addNewStyle('.BlogAnchor{background:#f1f1f1;padding:10px;line-height:180%;position:fixed;right:48px;top:48px;border:1px solid #aaaaaa;}.BlogAnchor p{font-size:18px;color:#15a230;margin:0 0 0.3rem 0;text-align:right;}.BlogAnchor .AnchorContent{padding:5px 0px;overflow:auto;}.BlogAnchor li{text-indent:0.5rem;font-size:14px;list-style:none;}.BlogAnchor li .nav_item{padding:3px;}.BlogAnchor li .item_h1{margin-left:0rem;}.BlogAnchor li .item_h2{margin-left:2rem;font-size:0.8rem;}.BlogAnchor li .item_h3{margin-left:4rem;font-size:0.8rem;}.BlogAnchor li .item_h4{margin-left:6rem;font-size:0.8rem;}.BlogAnchor li .nav_item.current{color:white;background-color:#5cc26f;}#AnchorContentToggle{font-size:13px;font-weight:normal;color:#FFF;display:inline-block;line-height:20px;background:#5cc26f;font-style:normal;padding:1px 8px;}.BlogAnchor a:hover{color:#5cc26f;}.BlogAnchor a{text-decoration:none;}');
window.hasExt = true;
</script>
网友评论