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