用 zola 在 github 上建立个人博客

  • 2023年 10月14日
  • 读完约需 5 分钟
  • • 
  • 标签: 
  • zola
  • rust
  • 最后更新于 2023年 10月14日

本文不会详细描述某些细节,比如如何在 github 创 建私有和公有的 repo(官网翻译是存储库),或是 zola 如何配置、如何使用等,后者在zola 官网有详细的描述。本文重点是记录在 github 上自动发布博客必须的步骤。

前提条件

一个 github 账号,打开github官方网站,登录个人账号,跳转到个人主页。

步骤

  1. 在 github 创建一个私有的存储库,官方的步骤在这里,下文以 blog_source 代表
  2. 同样的方法创建一个公开的存储库,取名为 blog
  3. 点击右上角个人头像,点击 Setting
  4. 在 Setting 界面点击左侧下方的 Developer Settings
  5. 在 Developer Settings 页面,展开 Personal access tokens,点击 Tokens (classic)
  6. 展开侧 Generate new token, 点击 Generate new token (classic)
  7. 需要设置的有三处:Note 是这个 token 的名字,建议取一个好记的,本文暂且用 publog 。Expiration 是必填项,代表过期时间,这个 publog 专门用于提交 blog_source 源码后,blog_source 的 workflow 可以自动提交结果到 blog 库, 所以建议是不过期,不用理会github的警告。Select scopes 选择 repo 下的public_repo ,然后转到最下方点 Gnerate token
  8. 此时页面会显示当前的token, 长这样: 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。 后面有个复制按钮,这里必须复制下来暂存,后面要用到,而且离开这个页面后就再也看不到它的内容了
  9. 回到 blog_source 存储库首页,点它的 Settings, 这个 Settings 和 Code、Pull requests、 Action 等在一排,别找错地方了
  10. 展开 Secrets and variables ,点击 Actions ,右侧的页面选择 Secrets ,点击 Managee environments ,
  11. 在 Environments 页面点击 New environment ,填token名字,这里就用 publog 。然后点击 Configure environment ,接下来的配置页面只需要点击页面中间的 Add Secret ,填上 token 名和刚才临时保存的token内容。名字要用大写,因为后面workflow里面的常量都是大写,这里就用PUBLOG_TOKEN
  12. 切换到 blog 存储库,同样点 Settings ,在 Environments 下重复步骤 11,添加同样的 token 名字保持一致,特别是大写的那个名字。
  13. 根据 github pages 官网介绍 配置好 pages ,默认 您的网站名字是 xxxxx.github.io ,也可以自定义域名,操作方法在官网介绍找
  14. 在 blog_source 存储库首页,展开绿色的 Code 图标, 选 ssh 方式,然后复制 clone 命令。
  15. 本地开命令行,进入合适的目录下,执行刚才的 clone 命令,将 blog_source 存储库克隆到本地,命令行长这样:
a@b.per$ git clone git@github.com:xxxxx/blog_source.git
  1. 根据zola官网教程在 blog_source 目录下创建博客,并创建.github/workflows/main.yml, 内容如下:
# This is a basic workflow to help you get started with Actions

name: Build and deploy my blog on GH Pages.

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches:
      #博客根目录默认分支 
      - main 
  pull_request:

  # Allows you to run this workflow manually from the Actions tab
  # workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build:
    runs-on: ubuntu-latest
    if: github.ref != 'refs/heads/main'
    steps:
      - name: 'Checkout main'
        uses: actions/checkout@master
      - name: 'Build only' 
        uses: shalzz/zola-deploy-action@master
        env:
          BUILD_ONLY: true
  build_and_deploy:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    steps:
      - name: 'Checkout'
        uses: actions/checkout@master
      - name: 'Build and deploy'
        uses: shalzz/zola-deploy-action@master
        env:
          TOKEN: ${{ secrets.PUBLOG_TOKEN }}
          # 填写你的自定义域名。如果没有用自定义域名,注释掉这行
          REPOSITORY: xxxxx/blog
  1. 修改完后提交代码,正常的话就过一会儿就能通过 xxxx.github.io 看到能的博客网站了。
  2. 如果看不到,查看 blog_source 存储库的 Action 菜单,里面有 workflow 的执行记录,根据不同的错误搜索解决方式。本文的初衷就是因为这里出现了问题,从 blog_source push blog 时发生错误,用了两天时间才解决。