前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >博客园文章自动生成目录-3级

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

作者头像
追逐时光者
发布2020-06-19 11:46:43
5790
发布2020-06-19 11:46:43
举报
文章被收录于专栏:编程进阶实战

展示效果

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

设置方式

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

生成目录JS代码

代码语言:javascript
复制
< 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>/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 展示效果
  • 设置方式
  • 生成目录JS代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档