Hexo主题与配置分离实现平滑更新
到目前为止,Hexo有三种主题配置方式
1. 站点配置文件方式
这种方式下,所有的配置内容包括 站点配置,主题配置,全部放在 站点配置文件(_config.yml) 当中,不需要修改 主题配置文件(themes/next/_config.yml) 或者创建其他什么文件
站点配置文件中要添加一个theme_config
属性,所有的主题选项必须放置在 theme_config
后,并全部增加两个空格的缩进,如:
用法:
- 请确认不存在
source/_data/next.yml
文件(如果已存在,请删除) - 从主题的
themes/next/_config.yml
文件中复制你需要的 NexT 配置项到/_config.yml
中,然后- 所有这些配置项右移两个空格
- 在这些参数最上方添加一行
theme_config:
有些麻烦,不太推荐这种方式
2. 数据文件方式
使用这一方式,你现在可以将你的全部配置置于同一位置(source/_data/next.yml
),并且不需要修改 themes/next/_config.yml
。 但是可能无法让所有 Hexo 外部库都准确处理它们的附加选项(举个例子,hexo-server
模块只会从 Hexo 默认配置文件中读取选项)
如果在新的 release 中出现了任何新的选项,那么你只需要从 /themes/next/_config.yml
中将他们复制到 /source/_data/next.yml
中并设置它们的值为你想要的选项
用法:
- 在
source/_data
目录创建一个next.yml,将主题配置文件中的配置项按需复制到此文件即可,我一般是将整个主题文件的配置内容全部肤质过来,如果没有_data
目录,就新建一个 - next.yml中的override选项置为true
这种方式下,有些配置项可能不支持,因此不推荐这种,且这种方式已经被Next弃用了
3. _config.[name].yml
方式(推荐使用)
使用这种方法,你的所有配置都放在根目录下的_config.[name].yml
中。将 [name]
替换成你在站点配置文件中 theme
选项后的值,比如:next
。
用法:
- 在博客根目录下新建一个配置文件,比如:
_config.next.yml
- 将你需要的 NexT 主题选项从主题配置文件复制到这个配置文件
- 如果之前使用的是选择 2 的方式,可以将
/source/_data/next.yml
中的内容复制到/_config.next.yml
中
推荐使用这种方式,非常便于平滑更新
参考链接:
- https://theme-next.js.org/docs/getting-started/configuration.html
- https://xfdj.github.io/2020/05/02/%E4%BC%98%E5%8C%96%E5%8D%9A%E5%AE%A2%EF%BC%88%E5%8D%81%E5%9B%9B%EF%BC%89%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B9%B3%E6%BB%91%E6%9B%B4%E6%96%B0%E4%B8%BB%E9%A2%98/
- https://github.com/theme-next/hexo-theme-next/blob/master/docs/zh-CN/DATA-FILES.md