Hexo折腾记--小白修改新主题

前言

如果您曾经来过我的博客,就会发现我抛弃了Next主题换了个更简洁的主题,这个主题叫BlueLake,基于Hexo-Maupassant主题定制,您如果感兴趣可以到这里了解详情:https://github.com/chaooo/hexo-theme-BlueLake

但是为了让这个主题适应一个OIer的作风,我0前端经验只能靠F12(也就是审查元素)和网上博客与问答以及丰富的瞎搞经验魔改了一些配置,在此做一些记录,可能有些幼稚请谅解,以便对这个主题同样感兴趣但不知道从何下手的OIer或其他人能改出自己想要的效果.

开启本地搜索(个人认为这个json本地搜索非常好用)等github文档里已经有的操作就不再赘述了,这里假设您已经有了Hexo搭建博客经验,以及更改基本配置的姿势水平,如果您没有,建议您可以先按照网上一大堆Next入门教程搭建一个Next主题的博客

然而一开始不小心npm了一些奇奇怪怪的插件(可能是jade版本不兼容)导致博客崩了,于是重装了一遍,续了不少时间,因此建议除非你足够大佬知道自己在做什么,魔改博客前务必保留备份

目前Github上我的Branch 暂无pull new request(感觉pq了还是会被拒),换掉原来的文件之后就是我博客中的这种效果

https://github.com/Rye-Catcher/hexo-theme-BlueLake/tree/Rye-Catcher-ForOI

配置Mathjax

这个主题有个比较鬼畜的地方就是它本身是在layout/_partial中是有Mathjax文件的,但是并没有在配置中加载相关配置,于是我与Maupassant对比文件,同时感谢一位大佬的博客:http://wudaijun.com/2017/12/hexo-with-mathjax/,成功让博文渲染Mathjax

首先我在BlueLake目录_config配置文件下加入这段代码,来开启Mathjax

1
2
3
4
mathjax:
enable: true
per_page: true
cdn: //cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML

结果并没有发生什么,然后在博客指引下更改_partial/after_footer.jade,发现并没有问题,有

1
2
if page.mathjax
include mathjax.jade

然后与Maupassant主题文件夹对比,发现layout/Index.jade中少了一句话,在include _partial/paginator下加一句include _partial/mathjax就好了,但是jade对缩进极为严格,一定要与前面一句话的缩进一致

然后hexo clean ,hexo g,hexo s,就发现已经渲染了数学公式了

创建新页面

像之前的Next主题下博客一样,我还是保留了留言板,结果留言板加载出来居然和”关于”页面效果一样也加载了我的个人信息?!这个看起来很别扭,我研究了layout/page.jade之后想吐槽这个作者真是偷懒,直接把每个类型为page的界面都加载了个人信息,就是这些:

1
2
3
4
5
6
7
8
9
10
11
.author-page
a.photo(href="javascript:;")
img(src='#{theme.about.photo_url}')
.author
p
i.fa.fa-user name:
| #{config.author}
each item in theme.about.items
p
i(class="fa fa-" + item.label) #{item.label}:
a(href=item.url,target="_blank")= item.title

咋搞呢,我们在layout目录下再创立一个jade文件page_233.jade或其他名字的玩意,把page.jade中的代码复制进去,然后去掉上述关于个人信息的代码就行了,注意缩进

然后把新页面(e.g 留言版)的front-matter(这是啥?https://hexo.io/zh-cn/docs/front-matter.html)

中加上layout: page_233(就是刚刚那个玩意的名字)

这时候套路操作一波后,发现那个新页面就没了作者信息了

修改代码高亮

这个主题的代码高亮真是无力吐槽,在source/css中找到了一个叫highlight.jade的玩意,感觉就是配置代码高亮的,于是用F12和RGB颜色参照表魔改一番,想改成VScode那种很舒服的风格,结果虽然不尽人意,但是比之前的不知道高到哪去了

这里有一份我的配置(包括下面的背景图片和标题配置在style.css/styl中)使用方法:https://github.com/Rye-Catcher/BlueLake-OI-HighLight-Style

怎么修改呢?F12大法好,F12你觉得不好的地方,可以直接线上修改来看看效果,然后到/source/css/highlight.styl和/public/css/highlight.css中运用耐心和ctrl+F找到对应的代码进行修改

颜色编码对照:https://www.114la.com/other/rgb.htm

背景图片设置

感觉背景并不是很好看,修改后尺寸感人而且不会随屏幕滚动,咋办?还是F12,找到背景配置是在/source/css/style.styl中,通过F12中的信息ctrl+F找到background相关代码,修改即可

修改哪些参数?参考了这篇博客https://blog.csdn.net/m0_38099607/article/details/71122165

在style.styl找到这么一大段话:

1
2
3
4
5
6
7
8
9
10
11
body
font-family: "Source Code Pro", Tahoma, "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei Light", "Microsoft YaHei", "Source Han Sans CN", "WenQuanYi Micro Hei", Arial, sans-serif
-webkit-font-smoothing: antialiased
-moz-osx-font-smoothing: grayscale
font-size: 14px
color: #333
width:100%
height:100%
background: #D8E2EB url(../img/bg.jpg) no-repeat //top center
background-attachment: fixed //这里在你的文件中应该是没有的
background-size: 100%

实际上你把background下面部分加上上述代码,同时去掉top,center这样就好了

注意别忘了在public/css/sytle.css中也要修改

如果你要我现成的(和上面链接一样):https://github.com/Rye-Catcher/BlueLake-OI-HighLight-Style

LOGO字体设置

一开始LOGO字体(也就是左上方你大写的名字)默认是宋体,感觉有点老气,怎么修改呢?F12

发现还是在style.styl中

ctrl+F找到LOGO,就是这么一大段话:

1
2
3
4
5
#logo
font: bold 42px/1.2 "Comic Sans MS" //"宋体"
white-space nowrap
color: #FFF
text-shadow: 1px 3px 6px #113f6e

然后像我那么改就好了(注意public/css/style.css中也要改),当然你也可以换成你喜欢的字体

如果你要想我现成的:https://github.com/Rye-Catcher/BlueLake-OI-HighLight-Style

本地搜索配置

你会发现默认的本地搜索是会把你的关键字放到文章内容去匹配的,这样结果会非常多,如果我们只希望匹配标题和标签的话,在主文件夹(不是主题内)_config文件中本地搜索配置(如果你没有说明你还没配置,看BlueLake文档)改成像我这样就好了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#self-search
jsonContent:
meta: false
pages: false
posts:
title: true //标题
date: true //日期
path: true //路径
text: false //文本内容
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true //标签

修改tab大小

这个主题的tab键大小有点扎心(之前Next主题也是),作为一名tab选手怎么能容忍大小不是4的tab呢?于是F12缩进处,发现并没有tab相关参数,于是突发奇想加一个tab参数,结果下方出现了一个tab-size的提示

于是在highlight.styl 中ctrl+F,找到这一段代码:

1
2
3
4
5
6
7
8
9
10
11
12
.gutter
background: #333//#f7f8f8
border-right: 1px solid #e6e6e6
padding: 0.3em 15px
.line
color: #f7f8f8//#aaaaaa
.line
font-size: 13px
color: #f7f8f8//#333
tab-size: 4 //加上这句话
&.marked
background: #333//#f5e3de

在那个位置加上tab-size: 4就好了

当然在public/css/highlight.css中也要修改,找到这段话(别找错了!)

1
2
3
4
5
6
figure.highlight .line,
.codeblock .line {
font-size: 13px;
tab-size: 4; //加上这句话
color: #f7f8f8;
}

也加上那句话就好了

后记

本来想搞个像Next主题一样的标签页,但是我对前端一无所知,不知道哪位大佬可来帮我QAQ

准备pull request