SunDoge's Blog

What TripleZ don't know

0%

使用 theme_config 管理你的 Hexo theme

自 Hexo 2.8.2 之后 [1],Hexo 支持使用 theme_config 来配置 theme。在这之前,如果我们想要使用 git 来更新我们 theme,同时又想用 git 管理 theme 的 config,我所知道的唯一一个办法,就是 fork 一份 theme,修改其中的_config.yml,再用 git submodule 将 fork 的 theme 引入博客仓库中。这个过程比较繁琐。

现在,我们可以利用博客仓库下的_config.yml 来覆盖 theme 仓库下的 config。以我使用的 NexT 为例,默认的 Muse scheme 并不和我意,我希望将其修改成 Mist scheme,只需要添加几行配置:

1
2
theme_config:
scheme: Mist

Hexo 5.0.0 之后 [1],我们还可以为每个 theme 创建一个单独的 config 文件来进行管理,文件命名规则为_config.[theme].yml。还是以 NexT 为例,创建_config.next.yml,修改内容为:

1
scheme: Mist

theme 就配置好了。

很奇怪的一点是,目前很多关于 theme 的资料都没有提到 Hexo 已经支持覆盖 theme config,导致我使用了很长一段时间的 Hexo 3.9,却还是在用 fork+submodule 的方法来管理 theme。

下次我将尝试使用 github action 来自动 deploy 我的博客。


2020-07-31 Update

Hexo 5.0.0 支持使用 npm 配置 theme 了。以后不需要手动管理版本,只需要

1
npm i hexo-theme-next --save

目前通过 npm 安装的主题在执行 hexo clean 时会报错,是 Hexo 的已知问题,将在下个版本修复。