hexo博客的基本维护方式
搭建过程可参考hexo博客搭建教程。
hexo提供了便捷的构建、部署功能。在本地添加了新的markdown日志或者图片之后,只需执行如下代码:
1 | 清除已有的构建目录,默认为public |
就会把本地的public文件夹push到对应的github仓库,并将网站自动部署到
{github用户名}.github.io
。
此外,如果想要维护本地源文件,还可以单独创建一个私有github仓库,用于存放source文件中的源文件等等。
(已弃用,请看进阶配置)
配置hexo
hexo的默认在配置文件是根目录下的_config.yml
,称之为hexo配置文件。更改其中的属性,可以改变网页的默认文本和样式。
其中的theme项默认的值是auto,我们可以更改这一个属性的值,来更换不同主题。
下载并配置主题
要更换主题,需要在hexo主题网站选择喜欢的主题进行下载安装。
有两种方式。
第一种(所有主题均支持):将主题对应的仓库克隆到/themes/{主题名}
文件夹下。例如,对于archer主题,可以执行如下代码:
1 | --depth=1表示,仅克隆最近一次commit |
克隆完成后,在archer
文件夹的配置文件_config.yml
中进行修改。
注意!每个主题的仓库中都有一个_config.yml
文件,称之为主题配置文件,与根目录下的_config.yml
文件是不同的。
第二种(仅部分主题支持):通过npm下载主题对应的依赖包。例如,对于keep主题而言,可以执行如下代码:
1 | npm install hexo-theme-keep --save |
下载完成后,themes文件夹下不会出现对应的文件夹。若想对该主题进行配置,需要在hexo配置文件中,添加theme_config项,在theme_config属性后,添加主题配置属性。
配置加载原理(推测)
首先,hexo加载根目录下的hexo配置文件,若发现theme的值不为默认的auto,则顺序进行如下过程:
对于第一种方式下载的主题:
- 在根目录中搜索
_config.{主题名称}.yml
文件,如果找到,则继续加载该配置文件中的内容,否则, - 在
themes
文件夹中寻找主题名称对应的文件夹,如果找到,则加载themes/{主题名称}/_config.yml
文件。若文件夹或者配置文件没有找到,则会报错。
对于第二种方式下载的主题:
在hexo配置文件中寻找theme_config
属性,并加载。
PS:已经证实
配置文件的优先级顺序为
根目录配置文件中的theme_config属性 > **_config.{主题}.yml** > 根目录配置文件
踩过的坑
- 首先,更改了主题名称之后,一定要清除原来的构建目录并重新构建,也就是运行hexo clean && hexo g。
- 不能手动在github的仓库设置里面添加custom
domain,因为这样每次部署后,自定义的域名都会丢失。需要在
source/
下创建一个CNAME的文件,将自定义域名写入。 - 如果添加了文件等静态资源,需要hexo g。否则部署之后,服务器无法获得图片等静态资源文件。