【分享】博客美化(6)为你的博文自动添加目录【转】

简介: 转自:http://www.cnblogs.com/asxinyu/p/4344153.html 阅读目录 1.目录样式文件 2.为文章添加固定的信息 3.自动生成目录代码   博客园美化相关文章目录:博客园博客美化相关文章目录   这篇文章使用的代码来自于博客园的marvin,非常感谢。

  博客园美化相关文章目录:博客园博客美化相关文章目录

  这篇文章使用的代码来自于博客园的marvin,非常感谢。在他的文章:如何给你的为知笔记添加一个漂亮的导航目录中,介绍了给文章自动添加目录的过程,我当时就非常兴奋,一直想要个类似的插件,就是不会写。所以当天就咨询了marvin,在他的提示下,我把他博客的CSS和js文件扒下来了,经过一番改进,成为了我博客目前使用的,所以分享出来。有了目录,的确是方便很多,可以快速的跳到指定的段落。当然博客园也有其他网友分享了一些其他的目录样式,个人感觉在底部侧边栏要好一点,根据喜好吧,另外薰衣草的旋律 在21号发表的一篇文章链接:http://www.cnblogs.com/wangqiguo/p/4355032.html,也不错,原理都差不多,大家可以借鉴下。但是是加在页面顶部,如果目录很多,会占用比较大篇幅和空间。大家按需选择。

  本文原文地址:博客美化(6)为你的博文自动添加目录

  marvin也把这个自动目录添加到了他的博客中,效果非常好。 看看他的原始效果:

效果非常好,而且前面的标号1,2,。。都是自动的。这一点不太符合我写博客的习惯,以为我的标题会把这个标号固定下来,所以就重复了,而且我想在这个目录前面添加点东西,例如推荐博客目录等等,经过我的一番修改,成了这个样子(在某些浏览器中貌似出不来,特别是IE,Chrom内核的浏览器好像都比较好):

我修改的地方主要有3个:

1.调整了宽度,然后标题字符数h1提高到了30个字符(其他的不截断显示);字体也变大了点,貌似比原来的要丑陋点,呵呵,没关系,有空再改回来吧。

2.根据自己博客的设置和写作习惯,提取h1,h2作为目录结果,原来作者是使用h2,h3,这个要看博客模版的情况和博客正文标题的样式;

3.在最前面增加了一个推荐博客,其实和文章推荐插件原理差不多,这里只不过是测试了一下,可以固定推荐几篇文章。 

看看源码和使用过程:

1.目录样式文件

  样式文件定义了目录的范围和相关格式,例如缩进等。原始文件在这里下载:marvin.nav.my1502.css,大家记得要自己下载,安装需求修改,然后上传到自己博客的文件去,再添加引用,如果直接添加我博客这个文件的引用,以后我要是改动了,你就杯具了。

2.为文章添加固定的信息

  这个功能不属于自动生成目录里面的,只不过我在扒皮的时候,一起拔下来了,就是可以为每篇文章添加一个固定的结尾,或者加一个微信扫描功能,样子就是这样,我进行了一些修改:

是通过js来完成的,js文件下载,使用方法还是自己下载然后上传到自己的文件目录中再引用:marvin.cnblogs.js

3.自动生成目录代码

  自动生成目录的代码是通过js完成的,就是寻找正文的h1,h2,然后把标题按照长度截断处理一下,拼接就可以了,我把我修改的部分代码贴出来看看:

复制代码
//推荐博客
    j += '<li><span style="font-size: 14pt;">推荐博客</span></li>';
    j += '<li><a href="http://www.cnblogs.com/asxinyu/p/4288836.html' + '">' + '1.本博客所有文章分类目录' + '</a><span class="sideCatalog-dot"></span></li>';
    j += '<li><a href="http://www.cnblogs.com/asxinyu/p/4329737.html' + '">' + '2.开源Math.NET基础数学类库使用' + '</a><span class="sideCatalog-dot"></span></li>';
    j += '<li><a href="http://www.cnblogs.com/asxinyu/p/4329742.html' + '">' + '3.微软Infer.NET机器学习组件使用' + '</a><span class="sideCatalog-dot"></span></li>';    
    j += '<li><span style="font-size: 14pt;">本文目录</span></li>';
    o.each(function (t) {
        var u = $(this),
            v = u[0];

        var title=u.text();
        var text=u.text();

        u.attr('id', 'autoid-' + l + '-' + m + '-' + n)
        
        if (v.localName === 'h1') {
            l++;
            m = 0;
            if(text.length>26) text=text.substr(0,26)+"...";
            j += '<li><a href="#' + u.attr('id') + '" title="' + title + '">' + text + '</a><span class="sideCatalog-dot"></span></li>';
        } else if (v.localName === 'h2') {
            m++;
            n = 0;
            if(q){
                if(text.length>30) text=text.substr(0,30)+"...";
                j += '<li class="h2Offset"><a href="#' + u.attr('id') + '" title="' + title + '">' + text + '</a></li>';
            }
        } 
    });
复制代码

我修改过的文件下载:marvin.nav.my1502.js,原始的文件可以到作者marvin的博客去扒下来。

最后就把要添加的代码说一下吧,直接引用这几个js和css文件就可以了,注意的是,还有一个公共的bootstrap.js文件,地址为:http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js

<script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link href="http://files.cnblogs.com/files/asxinyu/marvin.nav.my1502.css" rel="stylesheet">
<script type="text/javascript" src="http://files.cnblogs.com/files/asxinyu/marvin.cnblogs.js"></script>
<script type="text/javascript" src="http://files.cnblogs.com/files/asxinyu/marvin.nav.my1502.js"></script>

大家记得把文件路径完成自己修改上传过的。

保存之后,刷新应该可以看到效果了。有了这个思路,可以在上面添加你想要展现的信息了,而不拘泥于只是个目录。



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

.NET数据挖掘与机器学习,作者博客: http://www.cnblogs.com/asxinyu

E-mail:1287263703@qq.com

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
存储 缓存 算法
409操作系统学习笔记——内存管理(二)
409操作系统学习笔记——内存管理
3155 1
409操作系统学习笔记——内存管理(二)
|
C++
基于C++的简易计算器设计与实现
基于C++的简易计算器设计与实现
1066 3
|
Python
matplotlib绘制箱形图之基本配置——万能模板案例(一)
matplotlib绘制箱形图之基本配置——万能模板案例
2045 0
matplotlib绘制箱形图之基本配置——万能模板案例(一)
|
算法 数据可视化
Halcon边缘检测和线条检测(1),文章含自适应/动态二值化等算子
Halcon边缘检测和线条检测(1),文章含自适应/动态二值化等算子
2485 0
|
4月前
|
存储 人工智能 算法
Claude Code自我进化系统解析:AI编程助手持久化记忆与行为学习实现方案
在日常使用Claude Code开展编程工作时,多数用户都会遇到一个普遍痛点:每开启一次全新会话,AI都会清空此前的对话内容、项目认知与个人编码习惯。此前沟通的项目架构、反复确认的代码规范、调试总结的经验教训都需要重新讲解,不仅耗费大量时间,还会降低整体开发效率。针对这一问题,业内技术团队基于Claude Code原生能力,搭建了一套完整的持久化记忆与自我进化系统,让这款AI编程助手能够跨会话留存信息、自主学习用户行为规律,逐步适配个人与团队的开发模式。本文将完整拆解这套系统的整体架构、核心模块、技术实现、运行流程以及落地效果,同时讲解设计思路与优化细节,为AI编程工具的深度定制提供参考。
410 4
|
4月前
|
编解码 自然语言处理 文字识别
HiDream-O1开源:8B参数像素级统一Transformer
HiDream-O1-Image是HiDream.ai开源的8B参数像素级统一生成模型,摒弃VAE与分离文本编码器,首创UiT架构实现文本、图像、任务条件在共享token空间端到端联合建模。支持2048×2048高清生成、多镜头/多语言渲染、指令编辑与主体个性化,在GenEval等基准刷新SOTA。含50步未蒸馏版与28步Dev加速版,并集成推理驱动提示代理。
980 0
|
7月前
|
机器学习/深度学习 人工智能 Serverless
阿里云人工智能PAI是什么?PAI-EAS免费试用及配置使用教程
阿里云PAI-EAS是模型在线推理服务,支持一键部署AI模型为API或Web应用,具备自动扩缩容与推理加速能力。新用户可享A10/V100等规格500元/月免费试用(限1个月),覆盖北京、上海等6大区域,适用于机器学习、AI推理等场景。
|
7月前
|
监控 供应链 数据挖掘
淘宝商品详情API(taobao.item.get)场景说明
淘宝商品详情API(如taobao.item.get)通过提供商品全量结构化数据,已成为电商生态中连接数据与业务的核心枢纽,其业务场景覆盖电商运营、数据分析、供应链管理、营销推广等多个领域,以下从八大核心场景展开详细说明:
|
9月前
|
前端开发 C++ 容器
如何快速学习HTML和CSS
本教程专为新手设计,聚焦HTML与CSS核心知识,摒弃冗余内容。通过“学-练-做”三步法,结合VS Code工具和实战项目(如模仿百度首页),助你1-2周内快速掌握网页结构与样式,实现从入门到能用的跨越,少走弯路,高效上手。
556 0

热门文章

最新文章