1. 创建两个Github仓库

    一个是博客源仓库,用于储存所有博客源文件(Markdown文件和图片文件等)。 另一个是GitHub Pages仓库,用于储存由 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