1. 创建两个Github仓库
一个是博客源仓库(private),用于储存所有博客源文件(Markdown文件和图片文件等)。
另一个是GitHub Pages仓库(public),用于储存由 Hugo 从Markdown 文件生成的HTML文件。
2. GitHub Pages仓库的设置
在此仓库的Setting页中打开 Github Pages 选项,其中的Source要选Deploy from a branch,不要选GitHub Actions。
此后无需其他操作。
3. 为博客源仓库配置action文件
起先误以为还要为GitHub Pages仓库配置action文件。实际上只要在博客源仓库配置此文件。
4. action文件
起先在action文件中抄写了以下语句:
run: |
hugo -F --cleanDestinationDir # 生成静态文件
mkdir -p public # 确保public文件夹存在
cp -r public/* ./ # 复制生成的静态文件到仓库根目录
PUBLISH_DIR: ./
这样实际效果是把博客源仓库中的content目录(内含博客源文件)也复制到GitHub Pages仓库中了,失去了博客源仓库设为私有的意义。
现改为抄写以下语句:
run: hugo --minify # 使用hugo构建静态网页
publish_dir: ./public
action文件中有几处涉及版本号。例如,从网上抄来的是:
- uses: actions/checkout@v2 # 引用actions/checkout这个action,与所在的github仓库同名
uses: peaceiris/actions-hugo@v2 # hugo官方提供的action,用于在任务环境中获取hugo
uses: peaceiris/actions-gh-pages@v3 # 一个自动发布github pages的action
现在要改为:
- uses: actions/checkout@v4 # 引用actions/checkout这个action,与所在的github仓库同名
uses: peaceiris/actions-hugo@v3 # hugo官方提供的action,用于在任务环境中获取hugo
uses: peaceiris/actions-gh-pages@v4 # 一个自动发布github pages的action