从 Hexo 迁移到 Hugo

距离上次更换博客平台已经三年了,Hexo 是个很好的静态博客生成工具,现在也变的越来越成熟,但我却遇到了当初使用 Octopress 时一样的问题:生成速度。lucifr.com 之前一直放在 Digital Ocean 的海外机房,最近国内访问变的很不稳定,在向推友们咨询之后,决定改换到阿里云国际的香港机房。由于和自订主题的兼容性问题,在此前我一直在使用 Hexo 的早期版本,而在换到阿里云之后,不得不重新安装 Hexo,这时我发现早期版本的很多依赖包已经不能用了

从 Hexo 迁移到 Hugo

距离上次更换博客平台已经三年了,Hexo 是个很好的静态博客生成工具,现在也变的越来越成熟,但我却遇到了当初使用 Octopress 时一样的问题:生成速度。

lucifr.com 之前一直放在 Digital Ocean 的海外机房,最近国内访问变的很不稳定,在向推友们咨询之后,决定改换到阿里云国际的香港机房。由于和自订主题的兼容性问题,在此前我一直在使用 Hexo 的早期版本,而在换到阿里云之后,不得不重新安装 Hexo,这时我发现早期版本的很多依赖包已经不能用了,而且之前的主题也确实看腻,于是换到最新的版本。这时问题出现了,在服务器端生成目前的700多篇文章占用大量内存,很难生成成功,一直以来用的很舒服的这一套流程遇到了挑战。

这时我想起之前关注过的另一个静态站点生成引擎 Hugo。Hugo 是用 Go 语言编写,一大特色就是生成速度极快,几千篇文章的生成只需几秒,而且资源占用极少。虽然 Hugo 在主题等方面目前还不如 hexo 丰富,不过瑕不掩瑜。思虑再三,我还是决定迁移到 Hugo 这个引擎了。

在主题方面,目前选定了 Casper 这个广受喜爱的主题[1],当然还需要再修改。对主题的定制,Hugo 里做起来也很简单,不用去修改原文件,只要在 Hugo 站点目录下建立相应的目录和文件就可以覆盖主题的相应文件。

文章导入方面,Hugo 支持 Yaml 格式的 Metadata Header,唯一需要修改的是时间格式。Hexo 是使用的 date: YYYY-MM-DD HH:MM 的格式,而 Hugo 用的是带有时区的 date: YYYY-MM-DDTHH:MM:SS+HH:MM。有的人通过编写脚本进行替换,我是直接用 Sublime Text 的正则表达式批量查找替换了。此外像是 Hexo 支持的一些 Plugin,在 Hugo 里几乎都有对应的 Shortcode 进行替换。

目前还没解决的问题还有不少,比如搜索。我很想用 Algolia 这个服务,Hexo 已经有对应的插件可以方便的在主题中集成,Hugo 目前还没有现成的插件可以用。

总之,又有的折腾了。


  1. 是 Ghost 的 Casper 主题的 port。 ↩︎