让你的 Hexo 博客更美观的 N 种配置(基于 Fluid 主题扩展)

访问博客查看 本文 最新内容,排版更美观ヾ(•ω•`)o 如有错误欢迎指出~

Hello My World 的姊妹篇。

本站基于 Hexo + GitHub 搭建,采用 Fluid 主题。

这篇文章记录了博客的配置历程,包括:主题配置、域名配置、功能扩展。

主题配置

本站采用的是 Fluid 主题,以下的配置在路径 hewei2001/_config.fluid.yml 中可以实现。该文件的介绍参见 主题配置指南 。以下仅介绍部分较为特殊的配置,其他内容可在指南中找到。

代码高亮

lib: 选择生成高亮的库,可选项有 highlightjs 和 prismjs,对应下面两组配置。

这里选择 highlightjs,将 style 修改为 Night Owl 风格,将 bg_color 修改为 true 以适配暗色代码框。

其他尝试过的主题还有 Atom One Dark ReasonableVs 2015Github Dark Dimmed,都是不错的暗色风格。

Mac 风格代码块

在 GitHub 的 Issue 发现有人提供了自定义样式实现 Mac 风格代码块的方法,遂尝试之。首先在路径 hewei2001/themes/fluid/source/css 下新建文件 mac.styl,复制以下代码:

.highlight
    background: #011627
    border-radius: 5px
    box-shadow: 0 10px 30px 0 rgba(0, 0, 0, .4)
    padding-top: 30px

    &::before
      background: #fc625d
      border-radius: 50%
      box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b
      content: ' '
      height: 12px
      left: 12px
      margin-top: -20px
      position: absolute
      width: 12px

然后在路径 hewei2001/_config.fluid.yml 中找到 custom_css 选项,加入 /css/mac.css 代码,注意这里后缀名依然使用 .css,不然无法识别!

行内代码颜色

默认的行内代码颜色和正文颜色是继承关系,且行内代码背景色也不明显,因此视觉上难以区分。但是配置文件中又没有对应选项可以修改,查阅 GitHub 的 Issue 发现,有人曾提供过一个解决方案。

打开路径 hewei2001/themes/fluid/source/css/_pages/_base 下的 base.styl 文件,找到 code 配置项,修改颜色为 #E05B35

评论功能

Valine 是国内的一款极简风格的评论软件,也是 Fluid 支持的评论软件之一。在 comment 中选择 valine,之后找到相应的配置区域进行如下操作:

进入官网 LeanCloud 完成注册,然后在控制台创建一个项目 Blog.Comments 后,获取密钥(App ID 和 App Key),在对应位置填入。其他内容选项可以在官网找到说明。

访问人数统计

Fluid 主题提供两种网站的 PV、UV 统计数来源:LeanCloud不蒜子。不蒜子不需要申请账号,直接开启即可,但有时候会响应缓慢拖慢整个页面加载。LeanCloud 使用前需要申请账号,由于前面使用评论功能时已经注册,我们这边直接使用就行。

在控制台创建一个项目 Blog.Counter 后,获取密钥(App ID 和 App Key)和大陆服务器地址,填入 web_analytics 配置项中 leancloud API 相关参数。

内置 Tag 插件

Fluid 内置了一些 Tag 插件,用于实现 Markdown 不容易生成的样式,以下仅列出两种常用的使用语法,添加在 md 文件中:

  1. 脚注
正文[^1]

## 参考
[^1]: 参考资料1
[^2]: 参考资料2
  1. Tag 便签

在 markdown 中加入如下的代码来使用便签:

{% note success %}
文字 或者 `Markdown` 均可
可选便签:primary/secondary/success/danger/warning/info/light
{% endnote %}

或者使用 HTML 形式:

<p class="note note-primary">标签</p>

Latex 数学公式

post:
  math:
    enable: true
    specific: false
    engine: mathjax 或 katex

其中 specific 建议开启:当为 true 时,只有在文章 Front-matter 里指定 math: true 才会在文章页启动公式转换,以便在页面不包含公式时提高加载速度。

由于 Hexo 默认的 Markdown 渲染器不支持复杂公式,所以必须更换渲染器。

$ npm uninstall hexo-renderer-marked --save  # 卸载原渲染器
$ npm install hexo-renderer-kramed --save    # mathjax
$ npm install @upupming/hexo-renderer-markdown-it-plus --save  # katex

这里选择 MathJax,是因为对 LaTeX 语法支持全面,且右键点击公式有扩展功能菜单。

但是 Hexo 中默认会将下划线解析为斜体,使得用 MathJax 渲染公式下标有时会出错,需要找到路径 node_modules\kramed\lib\rules\inline.js,修改:

//第11行:取消对 \ 和 {} 的转义 escape
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
escape: /^\\([`*\[\]()#$+\-.!_>])/,
//第20行:
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

Tips1:在使用数学公式时,应当避免使用两个连续的 {},否则会被 Hexo 解释为特殊标签,从而报错。

Tips2:Hexo 对公式的支持不如 Typora 好,譬如多行公式需要用 \begin{aligned} ... \end{aligned},换行符 \\ 和定位符 &

Tips3:Hexo 中变量的上下标只能用 LaTeX 实现而不能用 Enhanced Markdown 语法。

域名配置

部署到 Coding Pages

Coding 可以算是国内的 GitHub,尽管并不是特别流行,但部署到上面可以使国内访问速度更快,还可以提交百度收录(GitHub 禁止了百度的爬取)。

注意:由于 Coding 在前段时间改版后,原有的个人版 Pages 下架,以企业版的形式重新开放,新版的静态网站服务需调用腾讯云对象存储 COS、内容分发网络 CDN、SSL 证书产品等资源,其中 COS 和 CDN 采用用量计费模式。故本博客暂不采用 Coding 部署。

添加百度谷歌收录

如果仅部署在 GitHub Pages,是无法被百度收录的,因为 GitHub 禁止了百度爬虫,最常见的解决办法是双线部署到 Coding Pages 和 GitHub Pages。

本站暂不考虑。

自定义域名

有了 GitHub Pages 服务器自带的域名后,还可以到阿里云再购买一个自定义域名,然后将域名解析到博客的域名,具体过程如下:

  1. 注册阿里云,实名认证后在购买下 hwcoder.top 域名。
  2. 打开域名控制台,进入域名解析列表,进入新买的域名,添加两条记录:
    • 主机记录:@;记录类型:A;记录值为 GitHub Pages 域名的 IP。
    • 主机记录:www;记录类型:CNAME;记录值为 GitHub Pages 域名。
  3. 在路径 hewei2001/source 下新建一个 CNAME 文件,里面填写我们买的域名,注意文件不需要任何后缀。
  4. GitHub 中打开对应仓库,在 Setting 中找到 Pages,添加 Custom Domain 为新买的域名,旁边的一个 Enforce HTTPS 勾选后我们的网站就变为 https://hwcoder.top
  5. 路径 hewei2001/_config.yml#URL 部分,更改为新域名。

以上操作后就可以在自定义的域名访问博客站点了,如果显示的内容与本地服务器查看内容不同,清除浏览器缓存后即可解决。如果不能解决,检查是否以上步骤有错。

其他功能扩展

以下配置是在 Fluid 主题中不具有的功能,通过各种插件实现。

备份博客到 GitHub

由于 Hexo 博客是静态托管的,所有的原始数据都保存在本地,如果哪一天电脑坏了,或者是误删了本地数据就很危险了。

GitHub 上可以找到一个 hexo-git-backup 插件,但似乎已经不再更新了,仅支持 Hexo 3.x.x 版本,尝试后放弃。

压缩静态资源

博客中有大量 HTML、CSS、JS 文件,这些文件为了阅读方便会加入许多回车和空行,但在页面解析时其实会浪费部分时间,此外如果有许多插图,也会拖慢网页加载,并占据 GitHub 仓库的存储空间。

目前有关插件有 gulphexo-neathexo-all-minifier。推荐采用集成度比较高的 hexo-all-minifier 来实现,由于在安装依赖包过程报错,本站最终采用了 hexo-neat

$ npm install hexo-all-minifier --save  # 出现 npm ERR! code ELIFECYCLE 错误
$ npm install hexo-neat --save          # 换成这个后成功安装

之后在配置文件 hewei2001/_config.yml 中增加如下内容就行:

# hexo-neat
## Docs: https://github.com/rozbo/hexo-neat
neat_enable: true
# 压缩 html
neat_html:
  enable: true
  exclude:
# 压缩 css  
neat_css:
  enable: true
  exclude:
    - '**/*.min.css'
# 压缩 js
neat_js:
  enable: true
  mangle: true
  output:
  compress:
  exclude:
    - '**/*.min.js'
    - '**/jquery.fancybox.pack.js'
    - '**/index.js' 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容