menu search

Hugo 起步

Jul 9, 2017

用Hugo也有一个多月了,写篇文章分享下自己对这个博客程序的看法。

这是什么?

Hugo是一个用Go语言编写的静态站点生成器。相比其他的生成器,它最大的优点就是它的生成速度了。根据官方的介绍,Hugo可以在几秒内生成一个包含了5000篇文章的站点。

但这数字其实并不是很可信。官方测试中,文章没有分类/标签,也没有开启分页。在开启这两样功能后,速度会慢些许。同时,生成速度也是因配置而异。配置好了,生成速度自然会快。

不过到目前为止,Hugo在我笔记本的HDD的生成速度还是十分让人满意的,生成我整个博客只需要800ms ~ 1200ms左右。

你真的要用静态站点生成器么?

和其他的生成器一样,如果你需要一些动态的功能就得自己找办法了。非常常见的需求当属评论系统了,基本上没有一个用着舒服的。Disqus目前似乎是最好的选择。

请考虑好到底有没有必要使用它,这可能是个大坑。如果你:

  • 博客只有一个人写作
  • 不介意使用命令行
  • 愿意折腾
  • 在意速度
  • 不需要后台

那你或许可以试试看它。

目前市面上的静态站点生成器用起来都需要折腾。即使能用到的命令就一两个,但如果想要用得舒服,前端的技能还是得有的。

同时,你可能不会得到像WordPress那么多的教程&帮助。 It’s all on you.

在这里提醒下用动态博客,但又犹豫要不要转移的人:

固定链接不要加ID
固定链接不要加ID
固定链接不要加ID

静态博客上没有类似WordPress数据库中的自增ID。你可以自己手动设置ID,但挺麻烦,同时还得注意不能重复。


我很喜欢静态博客的原因是因为我可以很方便的备份数据:我所有的文章都存放在Dropbox,手机上写完可以自动同步到电脑上。

同时,支持Dropbox的编辑器一抓一大把,用起来很方便。

为什么我应该用Hugo而不是其他的生成器

  • 速度快,比香港记者还快
  • Hugo不需要你配置语言环境,可以下载官方编译好了的二进制版本直接运行,非常方便。
  • 自带Live Reload功能:文件修改后会自动刷新浏览器。(hugo server)
  • 支持AMP:不仅如此,它能生成任何你想要的格式。(Ref: Output Formats)
  • 官方文档齐全

当然,它也有不足的地方:

  • 不支持插件。即使如此,我用到现在还没有遇到需要插件的地方
  • 模板语言有点难上手
  • 模板没有单独的配置文件:所有的配置全部都写在根目录的config.toml

上面的这些缺点我都能忍(

开始

请参考官方的教程: Hugo - QuickStart

简单的来说就是是:

  1. 下载二进制文件,放到变量目录中
  2. hugo new site bookshelf (生成新的站点)
  3. 下载主题,配置主题
  4. 写文章
  5. 生成!

bookshelf 目录便是刚创建的站点,其中的结构大概是这样子的:

|-- archetypes  内容模板
|-- config.toml  主配置文件*
|-- content  站点内容*
|-- data  用于存放其余的配置文件
|-- static  静态文件,如favicon.ico
`-- themes  网站模板*

看起来很乱,但其实大部分都不是必须的。我用到的只有content , static ,themesconfig.toml,其余的可以删除。

Hugo 没有自带主题,所以你得去官方的主题页面中找个中意的,然后放到themes目录。

模板都有一个exampleSite文件夹,可以把里面的config.toml复制到站点的根目录,然后开始修改。

请参考:Hugo - Configuration

命令

Hugo 自带了挺多命令,可以通过hugo help来查看。

我主要用到的还是这几个:

  • hugo:生成站点
  • hugo server:启动本地调试服务器
  • hugo benchmark:测试生成速度

Hugo 生成的静态文件默认存放在public文件夹下,可以直接把这些文件上传到主机上。

写作

参考:Hugo - Example Content

可以通过命令行来创建:

  • 文章:hugo new post/test.md
  • 页面:hugo new page/test.md

或者你也可以直接在content文件夹中创建相应的.md文件。

部署

Hugo 没有自带的一键部署。

如果需要部署到Git上,可以参考官方的教程:Hosting on Github

我目前使用的是Firebase Hosting。之所以用它,而不是GitHub Page或者其他的服务的原因下次再单独讨论。

最后

根据 StaticGen 的数据,目前Hugo在GitHub上的⭐数量仅次于Jekyll。几个月前超越了Hexo,成为了第二名。

目前来看,Hugo的更新速度还是挺不错的,基本上每个月都能出个新版。同时我感觉社区也挺活跃的。当然,不能和WordPress相比。

Hugo 还有很长的路要走,主题仓库中真的都不怎么好看。同时,也暂时没看到有Hugo的付费主题。

但不能否认,这是我目前为止用过的最舒服的生成器,足以让我放弃动态博客。

Comments

edit x send markdown image
paragraph comment heart