将博客从Hexo迁移至Hugo
文章目录
Github最近总是邮件提醒我有些插件过时了,存在安全问题。随着文章数量增多,Hexo的速度越来越慢。因此决定切换到Hugo
安装
安装 Git 和 Go
Hugo是用Golang编写的,使用Hugo前需要安装Git 和 Go 语言开发环境。
安装Hugo
参考官方文档有很多安装方式。对于Windows用户,可直接下载二进制文件,将放置路径添加至环境变量PATH
即可。
生成博客
|
|
安装主题
Hugo没有自带的主题,但其官网的主题库也非常丰富,应该能满足大部分人的需要。安装方式也与Hexo类似,在themes
目录中git clone
需要的主题即可。目前使用的是even
, 推荐的还有LeaveIt
,maupassant
配置文件
默认的配置文件为站点目录中的config.toml
,该文件可直接从主题的exampleSite/config.toml
直接替换,再进一步自定义。
文章迁移
之前Hexo默认的URL为如下形式
|
|
在Hugo的配置文件中,需要做如下设置才能达到相同结构的URL
|
|
Front-matter
Markdown文档开头起说明作用的Front-matter字段应书写规范,Hugo的要求似乎比Hexo更严格,需要检查一下哪些文章没有写好。
- 在
tags
,categories
等字段设置了多个值,则应该以tags: [mongodb, test]
的方式记录。 - Front-matter字段首尾的
---
分割符不能缺少。
其他项目
|
|
调试
|
|
Github项目迁移
之前,为了Hexo项目的多地部署,我在sr-c.github.io
新开了一个hexo
分支用于同步Hexo站点的配置目录。每次更新文章,先将站点目录git push
到hexo
分支,再使用hexo g -d
调用git
将public
目录的内容提交至master
分支。
顺应这个思路,我又新建了一个hugo
分支用于同步站点目录,再将每次更新生成的public
目录推送至master
分支。
向GitHub添加SSH key
参考之前的设置方式,对于已有的SSH key,可直接添加至GitHub.
|
|
提交hugo分支
在新建立的Hugo站点目录中
|
|
提交master分支
Hugo官方文档推荐使用子项目的方式管理并提交public
目录至master
分支。
|
|
注意,此处要求先删去已有的public
目录,但是public
已被注册称为子项目,最好在git
中删除该submodule
,否则如果下一步提交不成功,那么可能会存在问题。删除submodule
的方式记录如下:
|
|
托管至master分支中的docs
目录
https://sspai.com/post/59904中推荐将Github Page使用docs目录进行部署,但是实测目前该方法已经失效。
Github
对于个人用户的<username>.github.io
或<orgname>.github.io
的Page页面现在只能通过master
分支进行部署,不支持自定义,也不支持使用docs
目录了。
参考来源
https://scarletsky.github.io/2019/05/02/migrate-hexo-to-hugo/
https://www.flysnow.org/2018/07/29/from-hexo-to-hugo.html
https://io-oi.me/tech/hugo-vs-hexo/
https://ouuan.github.io/post/from-hexo-to-hugo/
https://blog.eric7.site/2020/01/05/%E8%BF%81%E7%A7%BBhexo%E5%8D%9A%E5%AE%A2%E5%88%B0hugo/