博客园添加目录索引

前面写博客一直没有添加目录,这样可能不能整体对文章内容一目了然,在参考博主"赵子清的技术文章"后,简单的修改了js代码,实现了博客的目录自动生成。参考博文地址在最后面。我的文章一般使用三级标题和四级标题,因此代码中修改成自动生成h3和h4目录,另外修改了li前面的图标为数字。

使用步骤

(1)确保博客园支持JS,没有就点击自动开通,一般需要等,着急可以给博客园发送邮件。

(2)将JS脚本添加到页脚Html代码,在博客园的设置里面可以找到。

这样添加完成保存后,博客的文章就会更新目录内容。

JS代码

主要内容记录在注释中,如果今后要修改方便理解。

 1 //增加一段JS脚本,为目录生成使用
 2 <script language="javascript" type="text/javascript">
 3
 4 // 生成目录索引列表
 5 // ref: http://www.cnblogs.com/wangqiguo/p/4355032.html
 6 // ref: https://www.cnblogs.com/zzqcn/p/4657124.html
 7 // modified by: clyang 20190630
 8 function GenerateContentList()
 9 {
10     //获取博文主体jquery对象
11     var mainContent = $(‘#cnblogs_post_body‘);
12     //获取博文主体下所有的h3对象
13     var h3_list = $(‘#cnblogs_post_body h3‘);
14
15     if(mainContent.length < 1)
16         return;
17
18      //如果文章中有h3标题
19     if(h3_list.length>0)
20     {
21         //目录内容
22         var content = ‘<a name="_labelTop"></a>‘;//增加锚点,name属性为_labelTop
23         //目录结构为div里面包含一个段落标题,和一个ul
24         content += ‘<div id="navCategory">‘;
25         content += ‘<p style="font-size:18px"><b>目录</b></p>‘;
26         content += ‘<ul>‘;
27         //遍历h3标题
28         for(var i=0; i<h3_list.length; i++)
29         {    //step1 在文章内容h3标题前面增加一段内容,点击它会超链接到目录顶部锚点,同时新增一个锚点,属性name名为_label+h3目录序号i
30             var go_to_top = ‘<div style="text-align: right"><a href="#_labelTop">Top??</a><a name="_label‘ + i + ‘"></a></div>‘;
31             //在h3标题的前面节点加的内容,相当于点击它,可以回到目录,同时点击目录时可以找到对应的锚点
32             $(h3_list[i]).before(go_to_top);
33             //step2 在文章当前h3标题下面获取所有的h4标题
34             var h4_list = $(h3_list[i]).nextAll("h4");
35             //step3 在h3标题下面获取h4标题,为其增加锚点,并且获得h4目录内容
36             //h4目录内容
37             var li4_content = ‘‘;
38             for(var j=0; j<h4_list.length; j++)
39             {
40                 var tmp = $(h4_list[j]).prevAll(‘h3‘).first();
41                 if(!tmp.is(h3_list[i]))
42                     break;
43                 //增加文章h4标题前锚点
44                 var li4_anchor = ‘<a name="_label‘ + i + ‘_‘ + j + ‘"></a>‘;//i代表h3标题序号,j代表h4标题序号
45                 $(h4_list[j]).before(li4_anchor);
46                 //增加h4目录,点击它可以去到文章中h4标题前,目录内容为文章中h4标题文本内容
47                 li4_content += ‘<li><a href="#_label‘ + i + ‘_‘ + j + ‘">‘ + $(h4_list[j]).text() + ‘</a></li>‘;
48             }
49             //step4 获取h3目录内容
50             //h3目录内容
51             var li3_content = ‘‘;
52             //如果有h4标题内容,h3三级目录下面增加一个h4四级目录li4_content
53             if(li4_content.length > 0)
54                 li3_content = ‘<li style="list-style-type: decimal"><a href="#_label‘ + i + ‘">‘ + $(h3_list[i]).text() + ‘</a><ul>‘ + li4_content + ‘</ul></li>‘;
55             //否则就只有三级目录
56             else
57                 li3_content = ‘<li style="list-style-type: decimal"><a href="#_label‘ + i + ‘">‘ + $(h3_list[i]).text() + ‘</a></li>‘;
58             //step5 更新目录内容
59             content += li3_content;
60         }
61         //for循环完成后,添加了一堆的li,或者li里面嵌套ul
62         content += ‘</ul>‘;
63         content += ‘</div><p>&nbsp;</p>‘;
64         //在文章正文前添加一个引言标题
65         content += ‘<p style="font-size:18px"><b>引言</b></p>‘;
66         //如果博文body有内容添加目录到前面
67         if($(‘#cnblogs_post_body‘).length != 0 )
68         {
69             $($(‘#cnblogs_post_body‘)[0]).prepend(content);
70         }
71     }
72 }
73
74 GenerateContentList();
75 </script>

参考博客:

(1)https://www.cnblogs.com/zzqcn/p/4657124.html  感谢赵子清的技术文章

原文地址:https://www.cnblogs.com/youngchaolin/p/11111647.html

时间: 2024-10-11 23:15:46

博客园添加目录索引的相关文章

为博客园添加目录的方法总结

博客园添加目录的方法主要涉及2个步骤: 1.申请开通js权限 2.添加js脚本到“页脚Html代码” <script language="javascript" type="text/javascript"> // 生成目录索引列表 // ref: http://www.cnblogs.com/wangqiguo/p/4355032.html // modified by: zzq function GenerateContentList() { var

【转】为博客园添加目录的方法总结

本文转自:作者:妙音天女    地址:http://www.cnblogs.com/xuehaoyue/p/6650533.html 目录 第一种:在正文上方直接添加目录 1. 申请开通js权限 2. 添加js脚本到“页脚Html代码” 3. 按格式写文章 第二种:在文章右上角添加目录导航 1. 申请开通js权限 2. 添加css代码到“页面定制CSS代码” 3. 添加js脚本到“页首Html代码” 4. 按格式写文章 参考链接:http://www.cnblogs.com/xdp-gacl/p

博客园自定义目录

博客园自定义目录js样式在css中设置 TOC 博客园自定义目录 参考:https://www.cnblogs.com/xdp-gacl/p/3718879.html#2937655 参考了这篇博客,但是这个只显示h2,h3的标题,就自己处理了一下,显示了h1--h5的标题 之前使用的是这样的目录https://www.cnblogs.com/ziyue7575/p/11407354.html 但是目录隐藏之后,这块区域仍然不能点击,所以,就自己写了一下....就是丑了点 js样式 在页首htm

博客园添加背景音乐,背景效果!

目录 博客园添加背景音乐,背景效果 申请博客园JS权限 添加网易云背景音乐 点击鼠标点击样式 二次元看板娘 雪花效果 原文地址:https://www.cnblogs.com/1212dsa/p/11438461.html

博客园添加markdown文章导航栏

博客园添加Markdown文章导航栏 我正在翻译Spring Framework文档,发布到博客园之后发现文章太密集,猛一看到比较懵,由于看到博客园支持自定义页面,我觉得添加一个导航栏,结构上会更加清晰一些. 所以在网上搜了搜关于添加导航栏的文章,搜到一个试了试,有些问题,所以就自己写了一个,实现功能如下: 主要搜索主页面中的h1-h6 根据1-6的级别设置字体大小和缩进宽度 滚动时页面最上方的标题对应导航将加粗 支持展开隐藏(默认隐藏,如果默认打开,就将js代码第6行display:none改

博客园添加鼠标粒子吸附特效

本文从以下三个方面, 阐述在博客园添加鼠标粒子吸附特效: 一. 效果展示 二. 权限申请 三. 设置步骤 一. 效果展示 在博客园的页面, 出现鼠标粒子吸附的特效, 如图所示: 二. 权限申请 点击博客园的[管理] → [设置]→ 一直往下拉, 找到[博客侧边栏公告(支持HTML代码)(申请JS权限)] 向[email protected] 发送邮件, 为了尽快通过权限申请, 邮件模板如下: 尊敬的博客园管理员: 请问是否可以帮我开通js权限,我需要一些简单的js来解决问题,例如鼠标点击特效.代

博客园生成目录

一.向官方申请Js权限 批准时间很快,成功有邮件提示: 二.将下段代码添加到页脚Html代码中 <script language="javascript" type="text/javascript"> //生成目录索引列表 function GenerateContentList() { var jquery_h3_list = $('#cnblogs_post_body h3'); //博客园的正文的div的id为cnblogs_post_body,

为你的博客园添加平滑移动到页面顶端的锚点和tag云

首先我的目录是在marvin的基础上二次开发的.然后我发现锚点图和目录都在同一个图上面,所以就一起用了. 返回顶部锚点: 我用以前旧版bilibili的那个函数.可以做到平滑滚动到页面,并且在触顶前不能向下滚屏.具体的看我参考链接.当然因为涉及到js要申请权限,简单的话a标签href用#top当然可以,体验有点差罢了. 然后因为我懒,锚点的出现条件直接和目录的出现条件弄在一起.也就是匹配元素相对滚动条顶部的偏移超过200时显示. tag云: 我用Google随便找的.用的矢量绘图. 但是这玩意有

博客园个人主页目录

table标签中thead.tbody.tfoot的作用http://www.cnblogs.com/zhouxinfei/p/8001510.htmlpython selenium模拟滑动操作http://www.cnblogs.com/zhouxinfei/p/8001506.htmlSelenium webdriver定位iframe里面元素http://www.cnblogs.com/zhouxinfei/p/8001496.html[python3.5][PyUserInput]模拟鼠