zoukankan      html  css  js  c++  java
  • CnBlogs自定义博客样式

    一、前言

    一直觉得博客园自带的样式不够简介美观,所以想着使用CSS美化下,同时写篇博客总结下以供后人参考。本文中的全部代码在这:github


    二、准备工作

    2.1 申请js权限

    首先,在自定义博客样式前,我们需要向博客园管理团队申请页面运行js的权限。【博客园】->【设置】->【博客设置】,点击页面上的js权限申请,然后填写申请的理由,耐心等待博客园管理团队通过申请,一般几个小时就会通过。然后再刷新一下,页面就会显示支持js代码


    2.2 学会“借鉴”他人样式

    如果看到别人的博客非常美观,可以适当“借鉴一下”。使用chrome浏览器,在其博客界面按F12查看页面CSS代码如下图所示,图中作为例子使用的是github的首页页面。点击图中红框内的查看按钮或者按下ctrl + shift + C查看蓝框中的元素,其CSS代码如绿框中所示。

    另外可以直接修改其CSS代码,例如添加颜色属性:color:red,会发现页面中的文字颜色变为红色了:


    三、改造之路

    3.1 自定义博客主体部分

    首先博客皮肤选择Custom,然后自定义博客主体部分的CSS,下面只是摘选出了很少一部分内容作为示例,全部内容可以去github查看。

    body {
        background: #e0ebe8;
        color: #404244;
        font-family: Arial,Helvetica,sans-serif,-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue'; 
        font-size: 16px;
    }
    
    /* 段落 */
    #cnblogs_post_body p {
        line-height: 1.4;
        font-size: 16px;
        margin-top: 10px;
    }
    
    /* h2标题 */
    #cnblogs_post_body h2 {
        font-size: 28px;
        margin-top: 23px;
        padding: 2px 10px;
        margin-bottom: 17px;
        border-left: 7px green solid;
    }
    
    ......
    

    3.2 自定义代码高亮主题

    之前写博客用的是博客园自带的TinyMCE编辑器,后来偶然喜欢上用Markdown写博客文档,索性把博客园的编辑器改为Markdown了。但是博客园的Markdown渲染效果不够美观,因此决心改造园子的Markdown样式。

    博客园代码高亮使用的插件是 highlight.js,highlight.js是一款轻量级的Web代码语法高亮库。highlight官网提供了77种主题:https://highlightjs.org/static/demo/, 大家可以查看demo选择一款自己喜欢的,然后放到博客里面。

    因为我比较常用的IDE是Qt Creator,所以选择了Qtcreator Light这款主题,如下所示:

    下载highlight.js包,进入主题文件夹找到你想要的主题文件,然后复制里面的CSS代码,进入你的博客园主页,【管理】->【设置】,找到【页面定制CSS代码】,粘贴到最后。

    由于直接将CSS代码加进来存在一些样式冲突,一般是背景色和字体颜色,还需要一些调整。现在贴出我调整后的CSS代码:

    /* markdown代码高亮主题 begin */
    /* makedown块代码样式 */
    .cnblogs-markdown .hljs {
        font-size: 16px !important;
        font-family: "Source Code Pro","Consolas","Courier New",Courier,monospace!important;
        background: #e0ebe8!important; /* 背景色 */
        color: #000; /* 普通代码颜色为黑色 */
        border: 0!important; /* 框线宽度为0,则相当于隐藏框线*/
        padding: 13px; /* 内边距都为13px */
    }
    
    /* makedown行间代码样式 */
    .cnblogs-markdown code {
        font-size: 1em !important;
        font-family: "Source Code Pro","Consolas","Courier New",Courier,monospace!important;
        background-color: #f9f2f4 !important;    
        color: #c7254e;
        border: none !important;
    }
    
    .hljs-strong,
    .hljs-emphasis {
      color: #a8a8a2;
    }
    
    .hljs-strong {
      font-weight: bold;
    }
    
    .hljs-emphasis {
      font-style: italic;
    }
    
    .hljs,
    .hljs-tag,
    .hljs-subst {
      color: #000000;
    }
    
    .hljs-symbol, /* 符号 */
    .hljs-attribute {
      color: #66d9ef; /* 淡蓝色 */
    }
    
    .hljs-bullet,  /* 布尔 */
    .hljs-quote, /* 引用 */
    .hljs-number, /* 数字 */
    .hljs-regexp, /* 正则表达式 */ 
    .hljs-literal, /* 字面量 */
    .hljs-link { /* 链接 */
      color: #000080; /* 藏青色 */
    }
    
    .hljs-code,
    .hljs-title, /*函数名*/
    .hljs-section,
    .hljs-selector-class {
      color: #008B8B; /* 深青色 */
    }
    
    .hljs-class .hljs-title { /* 类名称 */
      color: #EE30A7; /* 紫红色 */
    }
    
    .hljs-params {/* 函数参数 */
      color: #0055AF; /* 靛蓝色 */    
    }    
    
    .hljs-variable, /* 变量 */
    .hljs-template-variable { /* 临时变量 */
      color: #FA8072 /* 橙红色 */
    }    
    
    .hljs-string, /* 字符串 */
    .hljs-type, /* 类型 */
    .hljs-built_in, /* 内置,例如string、cout等 */
    .hljs-builtin-name, /* 内置名称 */
    .hljs-selector-id,
    .hljs-selector-attr,
    .hljs-selector-pseudo,
    .hljs-addition {
      color: #a31515; /* 暗红色 */
    }
    
    .hljs-keyword, /*关键字*/
    .hljs-selector-tag,
    .hljs-name,
    .hljs-attr {
      color: #808000; /* 淡褐色 */ 
    }
    
    .hljs-meta { /* 头文件、宏定义 */
      color: #20B2AA; /* 亮海蓝色 */    
    }
    
    .hljs-comment, /* 注释 */
    .hljs-deletion {
      color: #008000; /* 绿色 */
    }
    /* markdown代码高亮主题 end */
    

    3.3 侧边栏添加头像

    将下面这段代码添加到【博客侧边栏公告】中,以添加头像:

    <!-- 添加头像,并且点击头像跳转到博客园首页 -->
    <div align="center">
    <a href="https://home.cnblogs.com/u/linuxAndMcu/">
    <img src="https://www.cnblogs.com/images/cnblogs_com/linuxAndMcu/1348721/o_o_misaka.jpg">
    </a> 
    </div>
    

    3.4 美化页首

    将下面这段代码添加到【页首Html代码】中:

    <link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <section id="top">
        <header id="home-top" class="nav-top nav-fixed nav-root">
            <div class="container">
                <div class="row">
                    <div class="col-md-12 col-xs-12">
                        <nav id="top-nav">
                            <ul class="nav-list transistion">
                                <li><a href="https://www.cnblogs.com/"><i class='fa fa-smile-o'></i>博客园</a></li>
                                <li><a href="[1]你的博客园首页网址"><i class='fa fa-home'></i>首页</a></li>
                                <li><a href="[2]你的博客园管理网址"><i class='fa fa-user'></i>管理</a></li>
                            </ul>
                        </nav>
                    </div>
                </div>
            </div>
        </header>
    
        <div class="fade-area">
            <div id="title">
                <div class="container">
                    <div class="transistion cloud left-cloud"></div>
                    <div class="transistion cloud right-cloud"></div>
                    <div class="row">
                        <div class="col-md-12">
                            <div id="title-area" class="transistion">
                                <h2 class="llfc-blog">
                                    <figure class="transistion">
                                        <img src="[3]主标题,一张图片">
                                    </figure>
                                </h2>
                                <h2 class="blog-subtitle">
                                    <figure class="transistion">
                                        <img src="[4]副标题,一张图片">
                                    </figure>
                                </h2>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
    

    3.5 自动生成目录索引

    将下面这段代码添加到【页脚Html代码】中:

    <script language="javascript" type="text/javascript">
    
    /* 自动生成目录索引 begin */
    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();
    /* 自动生成目录索引 end */
    </script>
    

    参考:

    博客园主题分享——绿色

    博客园页面定制CSS代码

    如何自定义博客园代码高亮主题,同时分享自己使用的黑色主题


  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/11201434.html
Copyright © 2011-2022 走看看