Hexo迁移Hugo
文章目录
安装
首先需要安装Hugo。Hugo的安装很简单,官方安装教程:Install Hugo。 Mac下安装可以直接选择Homebrew。
|
|
Hugo程序安装以后,需要初始化博客目录。比如要创建一个目录名为Blog的博客目录
|
|
执行后会提示:
Congratulations! Your new Hugo site is created in /Users/urzz/Blog1. Just a few more steps and you’re ready to go:
- Download a theme into the same-named folder. Choose a theme from https://themes.gohugo.io/ or create your own with the “hugo new theme
” command. - Perhaps you want to add some content. You can add single files with “hugo new
/ . ”. - Start the built-in live server via “hugo server”. Visit https://gohugo.io/ for quickstart guide and full documentation.
同时,会在命令执行目录下新建Blog文件夹,这个文件夹里面会生成一些配置文件夹。还有一个config.toml文件,这个文件是博客的主配置文件。 archetypes: default.md是后续新增博文的模板 content: markdown文章目录 static: 存放静态文件,后续需要用到的静态文件比如图片,github page的自定义域名需要的CNAME文件,都可以放在这里面,这里的文件会原封不动复制到public的目录下 themes: 文件夹则是存放博客主题的。
配置
安装主题
Hugo的主题有很多,可以去这里自己选择。我用的是even主题: olOwOlo/hugo-theme-even
首先下载主题到当前博客目录下的themes目录,然后复制博客目录下的配置文件到博客根目录。
|
|
这样,博客主题安装已经成功了,运行hugo -t even
就可以生成博客静态文件到public文件夹
博客配置
|
|
除了这些基本配置以外,config.toml中还有很多其他配置,可以参考各行配置后面的注释有选择得修改。
评论系统
我这里没有考虑迁移hexo之前使用的评论系统的数据,因此直接忽略了迁移.
hugo支持的评论系统有不少,这里选用了utterances。因为它和gitment一样,基于github的issues来实现评论功能,使用比较方便,而且需要的权限更少,更安全。
首先需要新建一个repo,比如我这里新建的是urzz/hugo-comments。
even主题也集成了utterances的配置,只需要修改部分配置:
|
|
这样,评论系统也就ok了。
hexo数据迁移
首先迁移博客文档数据,even主题的博文markdown在content/post目录下,所以需要在content下新建文件夹post,然后复制hexo中source/_posts
下的markdown文件到这个文件夹中。
做到这里,其实博客基本迁移就完成了。不过我hexo中博客都会指定固定链接,而hugo默认是/year/month/day/filename
这样的格式,为了使原文章中设置的固定链接生效,需要做以下几个改动。
首先在config.toml中新增固定连接格式设置
|
|
hexo中的固定链接设置是在文章md文件的最顶端设置permalink,指定固定连接,而hugo中可以设置url属性指定文章路由。比如url: /test
,那访问路径就是https://urzz.xyz/test
,那就需要每篇文章都改,工作量比较大了。
回头看上面配置文件的改动其实也可以发现,hugo可以使用slug属性来配置固链。这样就只需要将各文章中原先permalink改为slug就可以了。
|
|
部署
因为是从hexo迁移,所以相关repo已经创建好了。这里略过了github pages的配置
hugo博客的部署其实跟hexo没太大区别,只不过它没有支持git deploy。 为了同时支持部署到vps和github,这里新增了一个部署脚本。脚本参考: Host on GitHub
|
|
该脚本用rsync来同步生成的静态博客到vps上,另外,首次同步到github时,需要git push -f来强制更新github pages所在repo。