博客園文章自動生成目錄-3級


展示效果

注意,在這里標題二代表一級,標題三代表二級,標題四代表三級。

設置方式

首先我們需要申請開通js權限,然后將目錄js代碼復制到博客側邊欄公告(支持HTML代碼) (支持 JS 代碼)中,如下所示:

生成目錄JS代碼

< script type = 'text/javascript' >
// 生成目錄索引列表
function GenerateContentList() {
    var mainContent = $('#cnblogs_post_body');
    //h2,大標標題內容
    var h2_list = $('#cnblogs_post_body h2'); //如果你的章節標題不是h2,只需要將這里的h2換掉即可
    if (mainContent.length < 1) return;

    if (h2_list.length > 0) {
        var content = '<a name="_labelTop"></a>';
        content += '<div id="navCategory">';
        content += '<p style="font-size:18px"><b>思維導航:</b></p>';
        content += '<ul>';

        //目錄遍歷
        for (var i = 0; i < h2_list.length; i++) {
            //回到頂部
            var go_to_top = '<div style="text-align: right;"><a href="#_labelTop"><b style="font-family: "Arial","Microsoft YaHei","黑體","宋體",sans-serif;">🚀回到頂部</b></a><a name="_label' + i + '"></a></div>';

            //回到頂部添加
            $(h2_list[i]).before(go_to_top);

            //h3列表數據
            var h3_list = $(h2_list[i]).nextAll("h3");
            //console.log("h3l列表數據");
            var li3_content = '';
            for (var j = 0; j < h3_list.length; j++) {
                //h3內容
                var tmp = $(h3_list[j]).prevAll('h2').first();

                if (!tmp.is(h2_list[i])) break;
                var li3_anchor = '<a name="_label' + i + '_' + j + '"></a>';
                $(h3_list[j]).before(li3_anchor);
                li3_content += '<li  style="list-style-type:decimal;"><a href="#_label' + i + '_' + j + '">' + $(h3_list[j]).text().replace(/:/g, "") + '</a></li>';

                //查詢h4導航內容遍歷----2020-06-06\(^o^)/~
                var li4_content = ""; //h4遍歷的列表數據
                var h4_list = $(h3_list[j]).nextAll("h4");
                //數據遍歷
                for (var y = 0; y < h4_list.length; y++) {
                    //獲取第一組h4的值
                    var tmp4 = $(h4_list[y]).prevAll('h3').first();

                    //當遍歷內容不等於該h3目錄下的值時
                    if (!tmp4.is(h3_list[j])) break;

                    var li4_anchor = '<a name="_label' + i + '_' + j + '_' + y + '"></a>';
                    //插入對應的索引
                    $(h4_list[y]).before(li4_anchor);
                    li4_content += '<li style="list-style-type:lower-alpha"><a href="#_label' + i + '_' + j + '_' + y + '">' + $(h4_list[y]).text() + '</a></li>';
                }

                //console.log("h4遍歷結束了");
                //h4遍歷查詢結束
                if (li4_content.length > 0) {
                    li3_content += "<ul>" + li4_content + "</ul></li>";
                } else {
                    li3_content += "</li>";
                }
            }

            var li2_content = '';
            if (li3_content.length > 0) li2_content = '<li style="list-style-type:square"><a href="#_label' + i + '">' + $(h2_list[i]).text().replace(/:/g, "") + '</a><ul>' + li3_content + '</ul></li>';
            else li2_content = '<li style="list-style-type:square"><a href="#_label' + i + '">' + $(h2_list[i]).text().replace(/:/g, "") + '</a></li>';
            content += li2_content;
        }

        content += '</ul>';
        content += '</div><p>&nbsp;</p>';
        content += '<p style="font-size:18px"><b>文章正文:</b></p>';
        if ($('#cnblogs_post_body').length != 0) {
            $($('#cnblogs_post_body')[0]).prepend(content);
        }
    }
}

//執行自動生成目錄索引列表
GenerateContentList();

< /script>/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM