Hexo 有很多主题,为了便于主题的及时更新,在多个不同的主题间随时切换,使用 Git 子模块来对这些主题进行管理
1 使用方法
1.1 添加子模块
我们在本地构建好 Hexo 项目之后,一般来说,下一步就是选取一个今后自己博客使用的主题,这里以 next 为例,执行以下命令
1 | # 添加 next 主题作为该项目的 Git 子模块 |
执行之后会在本地根路径生成一个 .gitmodules 文件,文件包含了 next 子模块的信息
1.2 拉取全部代码
包含子模块的 Git 项目,推送到远端仓库时,子模块中的代码并不会随父模块一起推送(远端仓库中的子模块目录是空的)
当更换电脑,需要拉取 Hexo 笔记项目时,执行以下命令,便可拉取父模块和子模块的全部代码:
1 | # 拉取网址就是项目对应的 Repo 地址 |
1.3 本地更新主题版本
执行以下命令
1 | git submodule update --remote |
2 问题
2.1 子模块主题配置文件不能直接修改
因为无论是 Push 不会推送子模块代码,Pull 也是从子模块原本的仓库中拉取,所以不能直接修改子模块中的代码
以 next 主题为例,实测在 Hexo 博客项目的根目录创建一个 _config.next.yml 能覆盖主题文件中的配置,但是它这种覆盖,貌似是将两个配置合在一起,然后外面的 _config.next.yml 比里面的 _config.yml 的优先级更高
另一种方式是通过安装 hexo 插件:hexo-theme-plus
因为我用到了 Github Action,我是在 CI 任务执行的过程中进行了主题配置文件的替换,这样也能达到主题部分自定义的目的了