用 zola 在 github 上建立个人博客
本文不会详细描述某些细节,比如如何在 github 创 建私有和公有的 repo(官网翻译是存储库),或是 zola 如何配置、如何使用等,后者在zola 官网有详细的描述。本文重点是记录在 github 上自动发布博客必须的步骤。
前提条件
一个 github 账号,打开github官方网站,登录个人账号,跳转到个人主页。
步骤
- 在 github 创建一个私有的存储库,官方的步骤在这里,下文以 blog_source 代表
- 同样的方法创建一个公开的存储库,取名为 blog
- 点击右上角个人头像,点击 Setting
- 在 Setting 界面点击左侧下方的 Developer Settings
- 在 Developer Settings 页面,展开 Personal access tokens,点击 Tokens (classic)
- 展开侧 Generate new token, 点击 Generate new token (classic)
- 需要设置的有三处:Note 是这个 token 的名字,建议取一个好记的,本文暂且用 publog 。Expiration 是必填项,代表过期时间,这个 publog 专门用于提交 blog_source 源码后,blog_source 的 workflow 可以自动提交结果到 blog 库, 所以建议是不过期,不用理会github的警告。Select scopes 选择 repo 下的public_repo ,然后转到最下方点 Gnerate token
- 此时页面会显示当前的token, 长这样: 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。 后面有个复制按钮,这里必须复制下来暂存,后面要用到,而且离开这个页面后就再也看不到它的内容了
- 回到 blog_source 存储库首页,点它的 Settings, 这个 Settings 和 Code、Pull requests、 Action 等在一排,别找错地方了
- 展开 Secrets and variables ,点击 Actions ,右侧的页面选择 Secrets ,点击 Managee environments ,
- 在 Environments 页面点击 New environment ,填token名字,这里就用 publog 。然后点击 Configure environment ,接下来的配置页面只需要点击页面中间的 Add Secret ,填上 token 名和刚才临时保存的token内容。名字要用大写,因为后面workflow里面的常量都是大写,这里就用PUBLOG_TOKEN
- 切换到 blog 存储库,同样点 Settings ,在 Environments 下重复步骤 11,添加同样的 token 名字保持一致,特别是大写的那个名字。
- 根据 github pages 官网介绍 配置好 pages ,默认 您的网站名字是 xxxxx.github.io ,也可以自定义域名,操作方法在官网介绍找
- 在 blog_source 存储库首页,展开绿色的 Code 图标, 选 ssh 方式,然后复制 clone 命令。
- 本地开命令行,进入合适的目录下,执行刚才的 clone 命令,将 blog_source 存储库克隆到本地,命令行长这样:
- 根据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
- 修改完后提交代码,正常的话就过一会儿就能通过 xxxx.github.io 看到能的博客网站了。
- 如果看不到,查看 blog_source 存储库的 Action 菜单,里面有 workflow 的执行记录,根据不同的错误搜索解决方式。本文的初衷就是因为这里出现了问题,从 blog_source push blog 时发生错误,用了两天时间才解决。