跳转至

GitHub托管站点

GitHub托管站点很简单,这里介绍一下文档源码私有,站点源码公开,利用GitHub Actions自动更新站点源码的方式,步骤如下:

  • 建立文档私有仓库
  • 建立站点公有仓库
  • ssh生成rsa密钥对

  • 密钥对关联仓库

  • 创建workflow

建立文档私有仓库

建立私有仓库,仓库名 uccus.github.io.source,这个仓库存放文档源码。

建立站点公有仓库

站点公有仓库的名称有要求,必须是 用户名.github.io,比如我的用户名是uccus,所以我的仓库必须是 uccus.github.io,用户名可以修改

image-20220116180211600

在Settings→Pages中可以看到,网站已准备发布到 https://uccus.github.io,也就是说,我们的博客网站是 https://uccus.github.io

image-20220116180911

ssh生成rsa密钥对

在命令行中用ssh-kengen 生成密钥对,注意密钥对保存的路径,不要把原有的密钥对覆盖掉,这里生成在当前路径,文件名字叫123,一路回车即可。

image-20220116181544

在当前路径下生成了两个文件,123是私钥,123.pub是公钥。

密钥对关联仓库

在文档源码仓库uccus.github.io.source中,点开Settings→Secrets,添加私钥,Name为MY_PRIVATE_KEY,Value填上面生成的123文件中的内容,注意,MY_PRIVATE_KEY后边会用到。

images-20220116183123

在站点源码仓库uccus.github.io中,点开Settings→Deploy keys,添加公钥,Title为MY_PUBLIC_KEY,Key填上面生成的123.pub文件中的内容。

images-20220116183611

创建workflow

在文档源码仓库uccus.github.io.source中,点开Actions→set up a workflow yourself,删除原有内容,替换为以下内容:

name: Publish docs via GitHub Pages
on:
  push:
    branches:
      - main                        # push到main分支后,触发此工作流

jobs:
  build:
    name: Deploy docs
    runs-on: ubuntu-latest
    steps:
      # 切换到主分支
      - name: Checkout main
        uses: actions/checkout@v2

      # 安装mkdocs和mkdocs-material
      - name: Setup MkDocs
        run: pip install mkdocs mkdocs-material mkdocs-material-extensions

      # 构建静态页面
      - name: Build
        run: mkdocs build

      # 发布页面
      - name: Deploy docs
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.MY_PRIVATE_KEY }}  # 上面设置的私钥变量
          external_repository: uccus/uccus.github.io # 指定仓库地址
          publish_branch: main                       # 指定仓库分支   
          publish_dir: ./site                        # 上传site目录下的文件
          keep_files: false                          # 删除原分支代码
          commit_message: ${{ github.event.head_commit.message }}

点击右上角,Start Commit即可。

至此,我们可以在本地撰写markdown文档,mkdocs serve预览没问题后,通过git push将代码推送到uccus.github.io.source仓库,等待Github Actions完毕(这个过程只需30秒)。

最后,我们就可以在 https://uccus.github.io 浏览网站啦😁


本文总阅读量
回到页面顶部