Hugo 是一个开源的静态站点生成器,使用 Golang 编写,它的包只是一个简单的可执行文件,不需要安装其它依赖,使用简单,构建站点速度非常快且有很高的灵活性。Hugo 安装运行在本地电脑上,撰写内容并生成静态文件后,可以部署到自己的服务器或者 GitHub Pages。本文以 Windows 环境为例介绍使用及发布的全过程。

安装 Hugo

Hugo Releases@Github 下载最新的安装包 hugo_0.56.3_Windows-64bit.zip,如果你的 Hugo 主题使用到了 Sass/SCSS,下载带 Extended 字样的安装包:hugo_extended_0.56.3_Windows-64bit.zip

解压安装包后,将 Hugo.exe 放到你想要的文件夹,比如 D:\Apps\Hugo\Hugo.exe,同时将此文件夹添加到系统 PATH 环境变量。

建立站点

选定一个文件夹来存储站点文件,如 D:\Sites,在此文件夹下运行以下命令建立站点:

hugo new site MySite

Hugo 将在 D:\Sites\MySite 下生成站点,里面自动生成的目录和文件都有特定作用:

content         // 最终站点的内容,此文件夹的目录结构即为最终站点的目录结构;
static          // 最终站点的静态文件,如 favicon.ico 及图片文件等;
themes          // 存放主题
config.toml     // 站点配置文件

设置站点

通过修改 config.toml 来配置站点:

  • theme 站点主题:下载喜欢的主题放到站点 themes 文件夹下,一个主题一个文件夹,文件夹名就是主题名。
  • publishDir 发布目录:最终静态站点的存储位置,默认是站点目录下的 public,例如发布到 GitHub Pages,可更改为 <username>.github.io

其它的属性参考官方文档,或者主题的文档。

添加站点内容

在站点目录下运行以下命令为站点添加内容:

hugo new posts/2019/hello-hugo.md

hugo new 后面的参数就是文章的路径,存储在站点 content文件夹里面,以上命令生成的内容路径为:D:\Sites\MySite\content\posts\2019\hello-hugo.md。

预览站点

可以启动本地 Hugo 服务器来实时预览编辑文章后的站点效果:

hugo server -D  // -D 参数:包含状态为草稿的文章。修改文章的 draft: false 可更改草稿状态。

发布站点

生成最终静态站点:

hugo

部署到 GitHub Pages

生成的静态站点可以部署到自己的服务器,也可以部署到 GitHub Pages 这样的静态文件托管服务,方法很简单,将生成的静态站点 Push 到 <username>.github.io 仓库即可。

部署到 GitHub Pages 需要注意以下几点:

  • 建立 <username>.github.io 时,仓库必须为公共库,私有库是无法使用 Pages 的。
  • 在 GitHub Pages 绑定自定义域名并强制 HTTPS 后,如果没有生效,你可以试着关闭浏览器重新打开,或者清空浏览器 DNS 缓存试一下。

其它

建议将站点进行 Git 版本控制,同时将 theme 和 publishDir 添加为子模块,方便更新与管理:

git submodule add https://github.com/.........

参考资料:
Hugo 文档:Quick Start
Creating and deploying your first Hugo site to Github pages