搭建思路
- Hugo 可以将 Markdown 文件转换为 HTML 文件;
- GitHub Pages 是 GitHub 提供的一个免费的静态网站托管服务,可用于托管个人网站、博客、文档、项目页面等静态内容;
- 创建 2 个 GitHub 仓库,一个是用于存放博客源文件的博客源仓库,另一个则是用于存放 Hugo 生成的 HTML 文件的 GitHub Pages 仓库;
- 使用 Github Actions 功能实现提交源码后自动发布。
准备工作
要想使用 Hugo + Github 搭建个人博客,首先要做好以下准备。
- 确保网络环境能够稳定地访问 Github;
- 创建 GitHub 账号;
- 安装 VS Code 与 Git;
以上内容只要稍加搜索,就能找到大量的教程,在此就不赘述了,接下来讲最后一项准备工作。
“我有东西可以写,我想写,我想一直写。”
如果你能做到前两点的话,请继续下一步;如果你能做到全部三点的话,也许哪天我就能看见你的博客;如果你连第一点都还做不到的话,不妨先试着写点什么。
安装 Hugo
Hugo 的安装方法很多,详情可以参考官方的 在 Windows 上安装 Hugo,建议安装扩展版(extended)。
创建 GitHub 仓库
创建博客源仓库
- 给仓库取一个你喜欢的名字(比如我用的是 BlogSource);
- 选择 Private,设置为私有仓库;
- 勾选添加 README 文件;
- 创建仓库。

创建 GitHub Pages 仓库
- 按照
<username.github.io>的格式命名仓库,<username>是自己的 GitHub 的用户名; - 选择 Public,设置为公开仓库;
- 勾选添加 README 文件;
- 创建仓库。

克隆博客源仓库到本地
创建项目文件夹(比如我用的是 Blog);
使用
cd命令进入该文件夹(从此处开始建议使用 VS Code);
| |
- 克隆博客源仓库到项目文件夹,克隆时使用的 HTTPS 仓库链接在这里查看;
| |
此处直接将 GitHub 上的远程仓库克隆到了本地,所以没必要再对仓库进行初始化,也不需要设置远程地址。
使用 Hugo 创建网站
使用
hugo new site [path] [flags]命令可以在提供的目录中创建新的站点;这里我选择在
Blog文件夹下创建BlogSource站点,由于克隆下来的BlogSource文件夹非空,需要在命令后加上-f来强制初始化;
| |
- 新的站点会有正确的结构,但尚无内容或主题,为了方便后续的操作,可以先选择一个有演示站点的主题。
配置主题
- 先到 官方的主题市场 选择一个喜欢的主题,下面我以自己使用的 Stack 为例;
- 一般主题的说明文档都会有安装相关的指导,各种主题存在差异,Stack 主题的安装可以参考 这个;
- 如果主题有演示站点
exampleSite文件夹,可以讲其中的content文件夹和toml或是yaml文件复制到站点目录,并删除原先的hugo.toml文件; - 将复制过来的配置文件中的 baseURL 改为自己的网址
https://<username>.github.io/,其他的修改可以等到网站搭建完成后再说。
使用 Hugo 新建文章
先使用 cd 命令进入站点目录,再使用 hugo new xxx.md 命令创建文章。这里先新建一篇空白文章,保证下一步本地预览的时候有文章就行。
| |
本地调试和预览
- 使用
hugo server命令构建网站,如果想要清理未使用的缓存文件,可以在命令后面加上--gc; - 执行命令后,使用
Ctrl + 单击打开终端中显示的链接http://localhost:1313/,端口后默认为1313,可能会发生变化; - 由于 Hugo 的构建速度很快,几乎可以即时地保存和查看更改。
GitHub 自动部署
生成 token
- 打开 GitHub,点击右上角的头像,再点击 Settings;
- 下拉页面,点击左侧的 Developer Settings;
- 点击左侧的 Personal access tokens,再点击 Tokens (classic);
- 点击右侧的 Generate new token,然后选择下面那个 Generate new token (classic);

- 选择 token 到期时间,勾选 token 的访问范围,然后点击 Generate token 生成 token;

- 生成的 token 只显示一次,所以一定要复制保存下来;
添加 secret
- 复制 token 后打开博客源仓库,点击 Settings,点击左侧的 Secrets and variables,点击 Actions;

- 填写 Secret 名称,并将前面复制的 token 粘贴到 Secret 框中,添加 secret。

配置 GitHub Actions
这里先附上官方的 GitHub Actions for Hugo,感兴趣的可以自己看一下。
- 创建 workflow,在仓库根目录创建
.github文件夹,再在里面创建workflows文件夹,之后创建一个gh-pages.yml文件,这个文件的名字也可以自取; - 将下面的内容复制进 yml 文件;
| |
- 修改
external_repository为自己的 GitHub Pages 仓库,把personal_token的YOUR_SECRET_NAME改成前面设置的 secret 名称,如果使用了扩展版的 Hugo,还可以将extended改成 true。
发布内容
在本地写完文章,并用 hugo server 命令在 public 文件夹下生成静态网页后,只需要将本地仓库的内容推送到远程的博客源仓库,过一段时间,GitHub Actions 就会将博客源仓库的 public 文件夹的内容推送到 GitHub Pages 仓库,这样就可以通过 https://pomfret27.github.io 来访问博客网站了。
推送本地仓库可以使用下面的 git 命令:
| |
上面三条命令先后完成了暂存、提交、推送三个操作,其中提交信息是必须填写的。
如果不想每次都手打命令,还可以使用 VS Code 的源代码管理功能。

步骤也是一样,先点击更改的加号来暂存所有更改,再输入提交信息,并点击提交按钮,提交完成后提交两字会变为同步,点击同步按钮即可完成推送。
如果你想要提交信息变得规范一些,可以安装 git-commit-plugin 插件来寻求帮助。
参考文献
碎碎念
文章中的部分内容并没有详细阐述,这部分内容将拆分到其他文章中,可以点击文章顶部的分类和底部的标签来查看相关文章哦。