切换博客园皮肤

背景

最近半年都没顾得上写博客,突然一上来,就觉得博客的皮肤很不耐看...

以前使用的这套皮肤是基于LessIsMore上参照别人的样式做了部分调整,原始代码 fork 自dunwu/fragment,而作者已经走上了自建blog的道路,于是决定换一套极简风的样式。

伸手党的奋斗经历

虽然博客园上有很多类似美化你的博客 | 来看这篇教程这种一步一步教你自定义皮肤的教程,但我相信绝大多数人都是和我一样的伸手党,所以以下就是我伸手的过程。

博客园页面结构

首先需要了解博客园页面设置自定义部分的一些基础知识,博客园的 设置 中和页面相关的有以下几个部分:

  • 博客皮肤
  • 页面定制 CSS 代码
  • 博客侧边栏公告
  • 页首 HTML 代码
  • 页脚 HTML 代码

博客皮肤其实就是一套主题,包含html、js以及css,博客皮肤是必选的,因此在自定义主题时尽量选择样式简单的皮肤,这种皮肤对页面的修改较少,不会有复杂的js和css,大大降低出问题的概率。

页面定制 CSS 代码、博客侧边栏公告、页首 HTML 代码、页脚 HTML 代码这4个模块其实都是在页面上添加HTML代码,博客园的页面结构大致如下:

<html>

<head>
    <!-- meta/favicon/title -->
    ...
    <!-- 全局公共CSS -->
    <link rel="stylesheet" href="/css/blog-common.min.css?v=eJQE8raBiZQaXXSaPTciUQCLTIh6ozn6FTo1VIJimsY">
    <!-- 页面定制 CSS 代码 -->
    <link type="text/css" rel="stylesheet"
        href="https://www.cnblogs.com/larva-zhh/custom.css?v=MwAxsYrQ+WS5UTS4SoGsve1W3qQ=">
    <!-- 皮肤模板预定义的CSS和JS -->
    ...
</head>

<body>
    <div id="page_begin_html">
        <!-- 页首 HTML 代码 -->
    </div>
    <div id="home">
        <div id="header">
            <!-- 文章顶部标题栏、导航栏HTML -->
        </div>
        <div id="main">
            <div id="mainContainer">
                <div id="forFlow">
                    <div id="post_detail">
                        <div id="topics">
                            <div id="post">
                                <h1 class="postTitle">
                                    <!-- 文章标题 -->
                                </h1>
                                <div class="clear"></div>
                                <div class="postBody">

                                    <div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown">
                                        <!-- 实际发布的文章内容 -->
                                    </div>
                                    <div id="MySignature" style="display: block;">
                                        <!-- 文章签名 -->
                                    </div>
                                    <div class="clear"></div>
                                    <div id="blog_post_info_block">
                                        <div id="BlogPostCategory">
                                            <!-- 分类链接 -->
                                        </div>
                                        <div id="EntryTag">
                                            <!-- 标签链接 -->
                                        </div>
                                        <div id="blog_post_info">
                                            <div id="green_channel">
                                                <!--  分享和关注操作链接 -->
                                            </div>
                                            <div id="author_profile">
                                                <!-- 作者信息,关注数等 -->
                                            </div>
                                            <div id="div_digg">
                                                <!-- 推荐 -->
                                                <div class="diggit" onclick="votePost(13546251,'Digg')">
                                                    <span class="diggnum" id="digg_count">0</span>
                                                </div>
                                                <!-- 反对 -->
                                                <div class="buryit" onclick="votePost(13546251,'Bury')">
                                                    <span class="burynum" id="bury_count">0</span>
                                                </div>
                                                <div class="clear"></div>
                                                <div class="diggword" id="digg_tips">
                                                </div>
                                            </div>
                                            ...
                                        </div>
                                        <div class="clear"></div>
                                        <div id="post_next_prev">
                                            <!-- 上一篇和下一篇的链接 -->
                                        </div>
                                    </div>
                                </div>
                                <div class="postDesc">
                                    <!-- 阅读数、发布日期、收藏数等-->
                                </div>
                            </div>
                        </div>
                    </div>
                    <div id="comment_form" class="commentform">
                        <!-- 评论编辑框 -->
                    </div>
                </div>
            </div>
            <div id="sideBar">
                <!--侧边栏-->
            </div>
        </div>
        <div id="footer">
            <!--页面底部 Copyright声明等-->
        </div>
    </div>
    <div id="page_end_html">
        <!--页脚 HTML 代码 -->
    </div>
    ...
</body>

</html>

筛选成品皮肤

作为博客园的用户,其实大家都有使用github作为代码仓库的习惯,最不济也会用gittee,所以只需要去github上搜索cnblog theme就会发现有很多仓库。

剩下的就是慢慢筛选你喜欢的皮肤了,我个人推荐两款极简风的主题:

类似 BNDong 这种强调首屏大图和炫酷背景的主题对阅读的干扰太大了。

部署&微调

最终,我选择了 cnblogs-theme-silence ,虽然我觉得 cnblogs-theme-next 的阅读进度挺有意思的。

部署

部署方式参考 部署指南,作者写的很详细。

右侧目录微调

我选择的是 silence 主题的默认样式,这个样式限制了目录的最大高度为350px,所以如果标题较多的话就会出现纵向滚动条,不喜欢。因此通过浏览器的devTools定位到目录列表,找到 ul 的样式 class 名为 .esa-catalog-contents ul

然后只需在 设置页面定制CSS 中加上 .esa-catalog-contents ul{max-height:100%}即可。同时也需要将字体稍微放大一些,所以同时添加上 .esa-catalog-title{font-size:14px}.esa-catalog-contents{font-size:14px}

Table微调

首先是字体大小,Table内的字体只有12px,看得会很累,因此需要将字体稍微调大一点,在 设置页面定制CSS 中加上 #topics .postBody table{font-size:14px}即可。

再来是背景色,参考github的表格的隔行换背景色,只需在定制CSS中加上tr:nth-child(odd){background:#F5F8FA}

禁用捐赠模块

参考文档设置 sponsor: { enable: false} 并未生效,猜测可能是 bug,不过没关系,我们还可以通过CSS来控制。通过 devTools 定位到 sponsor 元素的class为esa-sponsor

然后只需在 设置博客侧边栏公告 中加上如下代码:

<script type="text/javascript">
$('.esa-sponsor').attr('style','display:none;');
</script>

主题的CSS比页面定制 CSS 代码要更靠近元素,因此只能通过修改元素style来隐藏。

原文地址:https://www.cnblogs.com/larva-zhh/p/13546251.html