较为优雅的静态博客之旅(二):更换主题与域名
前言
本文承接前文,以 NexT 主题为例,讲述如何更换主题并对其进行配置。
安装
Hexo 支持添加主题。不同的主题可以将博客渲染成各式各样的美观样式,还能对你的博客添加额外功能提供助力。NexT 是一个知名度极高并且至今仍在维护的主题,我们以它为例讲解如何安装主题。在此之前,你应该已经安装好 Hexo 并建立了自己的博客。
NexT 历史版本有多个库,我们将以最新版本进行讲解。
回到博客根目录,在此路径启动终端。输入
1 | npm install hexo-theme-next@latest |
安装 NexT。传统的方式是将下载的主题放到 HexoSite->themes
文件夹下,但是这种方式对版本升级并不友好。因此我们使用 NPM 进行安装,安装后,NexT 主题的路径是 HexoSite\node_modules\hexo-theme-next
。以后,我们就可以使用 NPM 命令管理升级了。
安装完成后,打开 NexT 主题目录,可以看到 Hexo 根目录下和 NexT 主题的路径下都有名为 _config.yml
的配置文件。为了避免混淆,我们在后面称它们为 Hexo 配置文件
和 NexT 配置文件
。本节后续的主要工作主要都在其中进行。
这两个文件使用一种名为 YAML 的标记语言。Hexo 和 NexT 通过 YAML,以键值对(即先写一个设置项的名字,再写其被设置的值)的形式存储自定义设置。在这里我们不需要太在乎其语法,只需要知道形式是
key: value
(中间空格不可省略),且缩进和大小写都很敏感即可。
启用主题和配置 Hexo
Hexo 的设置
在之前 部署 一节我们实际上就设置过 Hexo 配置文件,现在我们更详细地对其进行配置。
文件的开头,可以写下网站的名字、侧栏的欢迎语以及作者等。如本站的配置为:
1 | # Site |
我们现在启用主题。将查找 theme
,将其值替换为 next
:
1 | theme: next |
此时我们 hexo s
启动本地服务,可以看到网页布局发生了改变。
其余 Hexo 原生配置可以查阅文档进行。接下来我们对 NexT 主题进行设置。
NexT 主题的设置
如果我们直接修改 NexT 配置文件,那么升级 NexT 时,这些自定义设置就会被覆盖而丢失。因此更好的做法是使用代替配置文件。这是 Hexo 官方支持的一种功能,具体来说,我们不修改 NexT 配置文件,而将这些配置写在 Hexo 配置文件中。这有点像 VSCode 中的默认设置和工作区设置的关系,后者会覆盖前者设置的值。这样就不会因为升级而丢失设置了,因为这些设置写在 NexT 主题文件之外。
更详细地来说,我们要这么做:
假设这是我们需要修改的配置:
1 | # NexT 配置文件 |
我们并不直接修改它而是:
1 | # Hexo 配置文件 |
下面是我建议进行配置的功能和对应的条目名:
- 选择喜欢的布局方案:
scheme
- 设置你的头像:
avatar
下url
。推荐将头像上传至图床,使用图床的链接。 - 设置你的其它网络账号的跳转链接:
social
下按需设置 - 设置喜欢的代码高亮风格和复制按钮:
codeblock
下的theme
、copy_button
中的enable
下面是一些需要详细阐述的设置
评论
我使用 Disqus
支持的评论功能,优点是无需备案,缺点是评论者需要注册 Disqus
账号,且国内网络不友好。要使用此功能,需要先注册账号,并选择喜欢的 Shortname
(推荐与网站保持一致)。你无需选择 What platform is your site on?
,选择最下方的"我的平台不在列表中跳过即可"。
随后,回到配置文件中,在 comments
的 active
项中写为 disqus
,并在下面的 disqus
中启用它。即
1 | theme_config: |
站内搜索
安装对应插件(由 NexT 团队支持)
1 | npm install hexo-generator-searchdb |
在 Hexo 配置文件的 NexT 的 代替配置文件
条目中:
1 | # Local search |
字数统计
安装对应插件(由 NexT 团队支持)
1 | npm install hexo-word-counter |
在 Hexo 配置文件的 NexT 的 代替配置文件
条目中:
1 | symbols_count_time: |
LaTeX 数学公式支持
如果我们需要在 Markdown 中写一些数学公式,那么一个简单的办法就是左右各用一个或者两个美元符号包裹 LaTeX 代码实现行内公式或者公式块。
LaTeX 数学公式语法这里不做讲解,搜索时注意它不是 LaTeX 语法即可。
但是 Hexo 自带的渲染器(渲染器即将 Markdown 转化为对应的网页代码的模块)对于 LaTeX 支持并不好。我们需要换用其它的渲染器。Hexo 有若干的渲染器,它们使用的渲染引擎大体上有两个:MathJax 和 Katex。简单来说,MathJax 支持的格式更全,但是渲染速度更慢;KaTeX 支持的格式更少但是速度更快。
鉴于 VSCode 的 Markdown 预览默认采用的就是 KaTeX,我倾向于使用 KaTeX ,这样在后续 VSCode 中预览时,所得到的渲染信息能够更加符合晚点实际渲染结果。于是我们可以选择的渲染器主要是 hexo-renderer-markdown-it-plus 和 hexo-renderer-markdown-it 。后者需要自行安装 markdown-it-katex
插件,不推荐,我们使用 markdown-it-plus
。
在 Hexo 目录下终端运行下列命令
1 | npm un hexo-renderer-marked |
这表示卸载 Hexo 原生的渲染器 hexo-renderer-marked
并安装新的渲染器 hexo-renderer-markdown-it
。
在 Hexo 配置文件中,NexT 的代替配置文件条目
下修改为
1 | katex: |
在不是 代替配置文件条目
的地方,添加
1 | LaTeX fomula |
运行 hexo clean
清理数据,hexo s
检查重新生成的渲染信息。
目前还是有不支持
equation
等格式的问题,怀疑是插件使用的版本较老。