让博客园博客自动生成章节目录索引
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* @author Alan
* @Email no008@foxmail.com
讨论QQ群:135202158
对于比较长的文章,有一个好的目录索引是很有必要的,可以让读者比较清楚地了解文章内容和层次。然而,目前(2015.7)博客园不像csdn博客那样,会对发布的文章自动生成目录索引。不过,一些网友通过博客园后台提供的一些自定义功能,自己写脚本实现了这一功能。我用的脚本主要就是参考@薰衣草的旋律 的,文章地址是:http://www.cnblogs.com/wangqiguo/p/4355032.html。
原作者的脚本只支持1级目录,我改了两级:第1级是h2,第2级是h3。还添加了一些小玩意,比如讨论qq群号。效果如下图所示:
添加功能的具体步骤是:
- 确保自己的博客园后台支持js
这个默认是不支持,需要向官方发个邮件申请开通(邮箱是contact@cnblogs.com),我简单写了封邮件,1小时就回复了,邮件内容我只写了两个字:如题。。。。 - 到后台加入脚本
打开博客园后台,进入“设置”标签页,在最下面的“页脚Html代码”对应的编辑框粘贴你的js代码,然后点“保存”按钮保存。 - 按格式写文章
在写新博文的时候,注意按照你js脚本里设定的格式来划分章节,比如h2,h3等。当然,以前发布的文章如果有h2,h3之类,也会自动生成目录索引。
脚本如下:
1 <script language="javascript" type="text/javascript"> 2 3 // 生成目录索引列表 4 // ref: http://www.cnblogs.com/wangqiguo/p/4355032.html 5 // modified by: zzq 6 function GenerateContentList() 7 { 8 var mainContent = $('#cnblogs_post_body'); 9 var h2_list = $('#cnblogs_post_body h2');//如果你的章节标题不是h2,只需要将这里的h2换掉即可 10 11 if(mainContent.length < 1) 12 return; 13 14 if(h2_list.length>0) 15 { 16 var content = '<a name="_labelTop"></a>'; 17 content += '<div id="navCategory">'; 18 content += '<p style="font-size:18px"><b>目录</b></p>'; 19 content += '<ul>'; 20 for(var i=0; i<h2_list.length; i++) 21 { 22 var go_to_top = '<div style="text-align: right"><a href="#_labelTop">回到顶部</a><a name="_label' + i + '"></a></div>'; 23 $(h2_list[i]).before(go_to_top); 24 25 var h3_list = $(h2_list[i]).nextAll("h3"); 26 var li3_content = ''; 27 for(var j=0; j<h3_list.length; j++) 28 { 29 var tmp = $(h3_list[j]).prevAll('h2').first(); 30 if(!tmp.is(h2_list[i])) 31 break; 32 var li3_anchor = '<a name="_label' + i + '_' + j + '"></a>'; 33 $(h3_list[j]).before(li3_anchor); 34 li3_content += '<li><a href="#_label' + i + '_' + j + '">' + $(h3_list[j]).text() + '</a></li>'; 35 } 36 37 var li2_content = ''; 38 if(li3_content.length > 0) 39 li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a><ul>' + li3_content + '</ul></li>'; 40 else 41 li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a></li>'; 42 content += li2_content; 43 } 44 content += '</ul>'; 45 content += '</div><p> </p>'; 46 content += '<p style="font-size:18px"><b>正文</b></p>'; 47 if($('#cnblogs_post_body').length != 0 ) 48 { 49 $($('#cnblogs_post_body')[0]).prepend(content); 50 } 51 } 52 53 var qqinfo = '<p style="color:navy;font-size:12px">讨论QQ群:135202158</p>'; 54 $(mainContent[0]).prepend(qqinfo); 55 } 56 57 GenerateContentList(); 58 </script>
【参考】@薰衣草的旋律: http://www.cnblogs.com/wangqiguo/p/4355032.html
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2017-09-28 notepad++ 快捷键大全、notepad常用快捷键