Android OS

MarkDown Pad工具设置

2020-03-04  本文已影响0人  古风子

设置自动生成目录

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('&nbsp;') + 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&&currentLink.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>
上一篇下一篇

猜你喜欢

热点阅读