Hugo是一个数一数二的静态页面生成器,快速简洁,又容易部署,实在是发布个人网页的利器。这篇文章介绍我为什么选择Hugo,以及选择Hugo所遇到的一些问题。

一直以来,我使用WP(WordPress)来写个人博客。WP的好处是通用,且主题和插件都很多,坏处是必须托管在主机上PHP+MySQL的主机,在国内想找个靠谱省心的主机不容易。所以我一直在找替代方案,最好是静态的不要要PHP和MySQL解决方案,这样就可以部署在如GitHub Pages或Netlify等众多静态页面托管服务上。这些静态页面托管服务大都有CDN加持,在国内的访问速度都不错,而且基本上都是免费的。迁移起来也很简单,一家不好很容易可以更换另外一家。

那第一步呢,就是要选择一个靠谱的静态页面生成器。StaticGen上列了静态页面生成器相关排名,比分靠近的前三甲是Jekyll,Hugo和Hexo,分别使用Ruby,Go和Javascript语言开发的。为了简单起见,我想从状元和榜眼中选一个。我在Jekyll和Hugo之间犹豫了很久。Jekyll是Github Pages的推荐生成器,必然相当成熟;而Hugo看起来像新贵,生态系统和Jekyll相比还是要差一点的。不过最终我还是偏向了Hugo,一是我熟悉Go,却对Ruby完全陌生;二是Hugo生成页面确实非常快,闪电一般的速度;三是Hugo易于安装,在每个操作系统下面都差不多,比Ruby的工具链要简单。

那第二步呢,就是挑选一个靠谱的主题。从我的经验看,选主题就像是选衣服,选个管用的不难,选一个有气质那就可难咯。Hugo的主题虽然不多,但是还可以挑一挑。挑选主题一般看三个方面:布局、字体和配色。这三方面基本显现了前端工程师的功力,搞好可不容易了。最后挑来挑去选中了Academic这款。Academic是为Hugo的原创主题(Hugo的很多主题都是抄的,比如从Jekyll那边搬过来的)。Academic简约的风格很吸引我,他不是一个单一的博客页面,首页更像是一个Portfolio页面,可以展示你的Project,Public以及Posts等分类内容,适合我的需求。

那第三步呢,就是安装和使用Hugo。Hugo的网站有很详细的教程,比如Quickstart可以教你快速使用。另外还有Hosting on Github Pages,详细说明如何把生成的网页托管在Github上(我就是照着这个做的)。

那第四步呢,就是要学习一下Markdown。Markdown是一种标记语言,是Hugo的默认内容格式。在生成静态页面的时候,Hugo会把Markdown的内容转化为网页内容。Markdown简单易学,下面是一些关于它的入门教程:

完成上面的三步,基本上就大功告成了。最后总结一下,Hugo功能强大,而且在不断进化。它的可定制性也非常强,如果你懂前端开发或者Go语言,就可以按自己的意思做修改。但是Hugo目前的问题是易用性还差一点,它是一个基于命令行的工具并且有很多配置,有一个不小的学习曲线,还不适合非技术用户。关于托管方面,随着云计算的逐渐普及,静态页面托管会愈加流行。因为好多需要后端支持的服务,比如发邮件、发消息、存储数据等都可以通过Restful的接口在云上提供。所以,我看好Hugo,它是一个静态网页生成的战斗机。