基于 Github Pages 的 hexo 博客搭建
先决条件
网站源码库
- 私有仓库,存放你手写的博客源代码,简称
库1
主题库
- 私有仓库,存放你自定义的主题代码,将其作为 git submodule 添加到
库1
,简称库2
Github Pages 库(xxx.github.io)
- 公共库,存放通过前两个仓库生成的网站页面,简称
库3
配置
给公共库配置部署密钥
用于
库1
和库2
的代码编译后自动部署到库3
生成密钥
1 | ssh-keygen -t ed25519 -C "clistery.github.io" # 这里的名字取什么都行 |
上传密钥到 库3
- 打开
库3
-> Settings -> Security -> Deploy keys -> 将刚才生成的公钥填到这里面
配置 PAT(Personal Access Token)
用于 Workflow 自动部署是可以对库进行读写
- 点击 Github 右上角头像 -> Settings -> Developer settings -> Personal access tokens -> Tokens(classic) -> Generate new token (classic)
- Note 可以随意填写,最好自己看见能懂就行
- Expiration 过期时间,可以选择不过期
- Select scopes 中勾选
workflow
和write:packages
- Generate token
- 然后把生成的 token(ghp_xxxxx) 保存下来备用
创建 Workflow
让 库1 & 库2 生成的代码能自动发布到 库3
打开
库1
-> Action -> New workflow -> Simple workflow -> Configure
(或者直接在库1
的根目录创建.github/workflows/xxx.yml
)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42name: Hexo Build & Deploy - Private to Public
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
# 检出 库1 & 库2
- name: Checkout
uses: actions/[email protected]
with:
token: ${{ secrets.CHK_PAT }} # Personal Access Token,稍后我们会在 库1 中进行配置
submodules: 'true' # 检出 submodule
persist-credentials: false
# 设置 node 环境
- name: Prepare Node env
uses: actions/setup-node@v3
with:
node-version: 16
# 设置 hexo 环境并编译
- name: Hexo
run: |
npm i -g hexo-cli
npm i
hexo clean && hexo g
# 将生成的文件发布到 库3
- name: Deploy
uses: JamesIves/[email protected]
with:
ssh-key: ${{ secrets.DEPLOY_KEY }} # 部署密钥的私钥,稍后我们会在 库1 中进行配置
repository-name: clistery/clistery.github.io # 库3的名字,格式为 user/repository
branch: main # 发布到库3的 main 分支
folder: public # 库3的类型,公共库
single-commit: true
commit-message: "Deploy by source"
配置 Workflows 变量
打开
库1
-> Settings -> Security -> Secrets -> Actions配置 CHK_PAT
- 点击 New repository secret
- Name 输入
CHK_PAT
- Secret 输入 配置 PAT(Personal Access Token) 时生成的 token
- Add secret
配置 DEPLOY_KEY
- 点击 New repository secret
- Name 输入
DEPLOY_KEY
- Secret 输入 生成密钥 时生成的私钥
- Add secret
最后
现在一切配置妥当之后,你就可以向 库1
和 库2
中推送代码,workflow 就会自动将代码部署到 库3
中,不出意外的话就可以在 xxx.github.io 中看到更新了
- 标题: 基于 Github Pages 的 hexo 博客搭建
- 作者: CListery
- 创建于 : 2022-10-19 16:33:05
- 更新于 : 2024-11-15 15:53:32
- 链接: http://clistery.github.io/2022/10/19/blog/hexo-setup/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论