
使用了Hexo一段时间,发现了一些问题,特在此记录。
分类和标签
Hexo 项目初始状态下并没有 Categories(分类)、Tags(标签)、Links(友链)、About(关于)等页面,需要自己手动创建。
- 分类
1 | hexo new page categories |
- 标签
1 | hexo new page tags |
执行上述命令后,Hexo会创建分类和标签页面。你在 Front Matter
中设置的分类会在其中显示。
- 关于
1 | hexo new page about |
此时你可以在Hexo项目 /source/about/index.md
中填写关于页面。
自定义域名
如果你跟我一样部署到Github上,且不想用默认的 <username>.github.io
域名,则可以自定义域名。
- 在域名注册商 or 托管服务商中添加一条
CNAME
记录
CNAME
记录把域名解析到另一个域名
- 管理自定义域
Github文档:管理自定义域
进入自己站点仓库的 Settings | Page
页面,输入自己的域名,强制开启HTTPS。
查看 Source
Github Actions,填写完域名后无需其它操作。
Deploy from a branch,它会创建 CNAME
文件,并提交到源分支的根目录。
注意:使用Gtihub Actions自动构建时会重新生成站点,该 CNAME
文件会消失,自定义域名失败。故应该在Hexo项目 /source
目录下创建 CNAME
文件,这样每次提交Hexo项目并自动构建后 CNAME
文件还会在站点中。
CNAME
文件内容:
1 | your domain |
自动构建博客更新时间BUG
git 在推送更新时,并不记录保存文件的访问时间、修改时间等元信息。又因为如果没有在 front-matter 中指定 updated,Hexo 会默认使用文件的最后修改时间作为文章的更新时间,所以会出现 CI 构建后所有文章的更新时间都变成了此次构建的时间。
在自动部署文件中添加以下代码:该条命令会将文件的最后修改时间修改为 Git 仓库中文件的最后提交时间,即文章的更新时间。
大白话:如果不干预,那么文件最后的修改时间就是此次的构建时间,从而出错。文件的最后修改时间必须和Git仓库中最后的提交时间一致才是正确的。
1 | - name: Restore file modification time |
设定Checkout的参数 fetch-depth: 0,因为 0 表示获取所有分支和标签的所有历史记录。
1 | - name: Checkout |
- 本文标题:Hexo相关问题及优化
- 创建时间:2023-06-16 21:15:04
- 本文链接:2023/06/16/tool/Hexo相关问题及优化/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!