前置准备
既然已经找到这里,应该已经知道如何用 Hugo 构建 Blog 页面,并可能已经了解 Github Pages。因此这里不在介绍 Hugo,如有需要请参考官方文档。
要想使用 Github Pages 构建静态网站,需要把相关代码放在 Github 仓库,命名为 <username/organization>.github.io。为便于说明,假设用户名为 mira。则仓库主分支目录结构大致如下:
1 | mira.github.io |
创建 SSH Deploy Key
详情请参考文档说明。
在终端中(Windows可在git-scm终端)创建所需的密钥:
1 | ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N "" |
在仓库页面选择 Settings 标签,从左侧进入 Deploy Keys 设置,添加新的公钥,将公钥(gh-pages.pub)复制粘贴到 Key 框中,勾选下方的 “Allow write access”,点击 Save 保存。
点击左侧的 Secrets, 创建新的密钥,命名为 ACTIONS_DEPLOY_KEY 并将密钥(gh-pages)粘贴到下方框中,点击 Save 保存。
创建 Workflow
在仓库页面点击 Actions 标签,创建新的工作流(注意选择 set up a workflow yourself),路径为.github/workflows/gh-pages.yml,输入以下内容以创建配置文件:
1 | name: github pages |
其中main分支为仓库主分支,若为 master 请手动替换。Workflow 默认选择创建 gh-pages 分支用于存放 Github Pages 所需文件,默认编译在 public 目录下并提交到该分支。若要更改此分支名,需要在Deploy部分指定:
1 | - name: Deploy |
更多设置请参考 actions-hugo 和 actions-gh-pages。
设置分支
实际上在工作流配置文件提交后,若 Workflow 建立成功,即可自动开启编译。但此时 Pages 仍然不可访问,原因是第一次编译后需要设置 Pages 分支到 gh-pages。请进入 Settings 中,并向下滚动到 GitHub Pages 设置项配置即可。生效一段时间后,即可访问 http(s)://<username/organization>.github.io。