博客园如何加目录

转自:https://www.cnblogs.com/ning-wang/p/7656847.html

【1】文章头部加目录

1.1 效果展示

  

1.2 代码

<script language="javascript" type="text/javascript">
// 生成目录索引列表
// ref: http://www.cnblogs.com/wangqiguo/p/4355032.html
// modified by: zzq
function GenerateContentList()
{
    var mainContent = $('#cnblogs_post_body');
    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" style="color:#152e97;">';
        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" style="color:#f68a33">回到顶部</a><a name="_label' + i + '"></a></div>';
            $(h2_list[i]).before(go_to_top);
            
            var h3_list = $(h2_list[i]).nextAll("h3");
            var li3_content = '';
            for(var j=0; j<h3_list.length; j++)
            {
                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><a href="#_label' + i + '_' + j + '">' + $(h3_list[j]).text() + '</a></li>';
            }
            
            var li2_content = '';
            if(li3_content.length > 0)
                li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a><ul>' + li3_content + '</ul></li>';
            else
                li2_content = '<li><a href="#_label' + i + '">' + $(h2_list[i]).text() + '</a></li>';
            content += li2_content;
        }
        content += '</ul>';
        content += '</div><p>&nbsp;</p>';
        content += '<hr style="height:1px;border:none;border-top:1px dashed #0066CC;"/>';
        if($('#cnblogs_post_body').length != 0 )
        {
            $($('#cnblogs_post_body')[0]).prepend(content);
        }
    }   
}

GenerateContentList();
</script>

【1】部分转自:https://www.cnblogs.com/xuehaoyue/p/6650533.html

【2】文章左侧加目录

2.0 我的实现效果

原文本效果:文章右侧加目录

原文连接:https://www.cnblogs.com/ning-wang/p/7656847.html

  

 

 

 

我的效果:文章左侧添加目录

  

基于原本的改动

《1》侧边栏

  (1)侧边栏:放到左边去了,这样不会挡住我的文章内容,并且把它变成了,且字符间距修改了不会感觉挤得慌

  (2)侧边栏:只支持标题2、标题3、标题4(也就是 h2/h3/h4),为什么我不支持H1呢?因为在编辑界面,h1是在太大了;所以我根本不会设置内容为标题1

《2》内容标题颜色

  (1)标题1:白色字体,浅蓝色背景

  (2)标题2:白色字体,绿色背景

  (3)标题3:蓝色字体,无背景色

  (4)标题4:默认字体加粗,无背景色

《3》文章开头目录,只记录标题2和标题3;因为标题1就是之前的那个问题,编辑界面太大不香写,标题4的话,太细了,导致我的目录篇幅会很大,不值得;  

最终效果如下

2.1(参考) 下载相关文件(小白可忽略该步骤)

2.2 文件说明(小白可忽略该步骤)

bootstrap.min.js 侧边栏

marvin.nav.js 目录自定义文件,可以通过修改该文件配置来自定义自己的目录。

2.3 文件使用

1) 申请JS权限

博客设置 -> 博客侧边栏公告

我的已经申请了JS权限,所以显示(支持JS代码),没有申请前,这里有一个超链接申请JS权限,点击后等待1天左右,管理员机会批准你的申请。

2)添加JS引用

(小白直接可以复制下面【我的修改】中的路径,到下图中的位置)

注意:在博客设置 -> 博客侧边栏公告内粘贴如下代码,注意要下载后上传到自己的博客园上,还有注意替换链接中的博客名,否则我的JS文件一旦修改,你也就遭殃了。(小白要是不会就不要管这句话)

如下图:

  

往下拉,找到博客园侧边栏公告(支持HTML代码)

【原文版本】
<script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link href="https://files.cnblogs.com/files/ning-wang/marvin.nav.css" rel="stylesheet">
<script type="text/javascript" src="https://files.cnblogs.com/files/ning-wang/marvin.nav.js"></script>
【我的修改】
<script src="https://files.cnblogs.com/files/gered/bootstrap.min.js"></script> <link href="https://files.cnblogs.com/files/gered/marvin.nav.css" rel="stylesheet"> <script type="text/javascript" src="https://files.cnblogs.com/files/gered/marvin.nav.js"></script>

然后把上面我的【我的修改】的复制进去就好了;

  

3)自定义标题

想不想要好看的文章标题呢?下面将介绍如何来自定义文章标题。

  

2.4 CSS样式

博客设置 -> 页面定制CSS代码
粘贴如下代码即可实现

<style type="text/css">
    #cnblogs_post_body
    {
        color: black;
        font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif;
        font-size: 17px;
    }
   /*标题1*/
#cnblogs_post_body h1 {
    color: #fff;
    padding-left: 15px;
    background-color: #6FA833 !important;
    text-shadow: 2px 2px 3px #222222;
    font-family: "微软雅黑" , "宋体" , "黑体" ,Arial;
    margin-bottom: 5px;
}
/*标题2*/
#cnblogs_post_body h2 {
    color: #6FA833;
    border-left: 13px solid #6FA833;
    padding: 5px;
    background-color: #f5f5f5;
}
</style>

我的CSS样式(只弄了h1/h2/h3)

<style type="text/css">
    #cnblogs_post_body
    {
        color: black;
        font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif;
        font-size: 17px;
    }
   /*标题1*/
#cnblogs_post_body h1 {
    color: #fff;;
    padding-left: 15px;
    background-color: #84C1FF !important;
    text-shadow: 2px 2px 3px #222222;
    font-family: "微软雅黑" , "宋体" , "黑体" ,Arial;
    margin-bottom: 5px;
    font-size: 23px;
}
   /*标题2*/
#cnblogs_post_body h2 {
    color: #fff;
    padding-left: 15px;
    background-color: #6FA833 !important;
    text-shadow: 2px 2px 3px #222222;
    font-family: "微软雅黑" , "宋体" , "黑体" ,Arial;
    margin-bottom: 5px;
    font-size: 20px;
}
/*标题3*/
#cnblogs_post_body h3 {
    color: #009ACD;
    border-left: 13px solid #009ACD;
    padding: 5px;
    background-color: #f5f5f5;
   font-size: 18px;
}
</style>

 

【3】在线修改博客园CSS文件不生效问题解决,缓存问题

修改了.css文件或者.js文件,再上传到博客园,发现页面没有改变。

点击文件中的“下载”按钮,显示的文件内容是修改之前的版本。

原理:

  浏览器在浏览页面时会缓存下来页面的css和javascript等信息,如果仅网页端修改了网络文件,本地缓存的文件没有修改。

  浏览器加载时会直接从本地加载数据。

解决方案:

  在浏览器工具栏,找到高级工具,点击清除浏览数据,勾选“缓存的图片或文件”,清除后再次打开页面,问题解决。

   

 

 

 

0x03 参考链接

http://www.cnblogs.com/asxinyu/p/Bolg_Category_AddArticleCategory_6.html

http://www.cnblogs.com/marvin/p/ExtendWizNoteAutoNnavigation.html#autoid-5-2-0

posted @ 2019-10-30 17:23  郭大侠1  阅读(1589)  评论(8编辑  收藏  举报