博客园文章自动生成目录-3级

简介: 博客园文章自动生成目录-3级

展示效果

注意,在这里标题二代表一级,标题三代表二级,标题四代表三级。

image.png

设置方式

首先我们需要申请开通js权限,然后将目录js代码复制到博客侧边栏公告(支持HTML代码) (支持 JS 代码)中,如下所示:

1336199-20200606020321257-1947437326.png

生成目录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>/


相关文章
|
3月前
|
数据可视化 API 开发工具
影创SDK☀️三、工程默认配置,及基础测试建议
影创SDK☀️三、工程默认配置,及基础测试建议
|
6月前
|
JavaScript 前端开发 容器
如何使用Contentlayer和Tocbot创建博客网站目录?
如何使用Contentlayer和Tocbot创建博客网站目录?
86 0
|
11月前
|
数据库
【博客项目】—用户新增功能(九)
【博客项目】—用户新增功能(九)
|
Java 开发工具 git
vuepress博客自动生成分页文章列表
用 vuepress 搭建了一个自己的技术博客,记录自己平时工作和学习中的一些经验总结,但是因为 vuepress 本身是为了方便我们快速搭建技术文档的,直接用来做博客总觉得少了点啥东西,怎么看都像一个文档网站
45 0
|
NoSQL Java 数据库
基于C#的ArcEngine二次开发40:如何删除临时GDB文件
基于C#的ArcEngine二次开发40:如何删除临时GDB文件
修改CSDN博客中自动生成的ID步骤
修改CSDN博客中自动生成的ID步骤
634 0
修改CSDN博客中自动生成的ID步骤
为博客园添加目录的方法总结+自定义博客园样式
参考链接: http://www.cnblogs.com/real-me/p/8336741.html https://www.cnblogs.com/xuehaoyue/p/6650533.html http://www.
2073 0