让Hexo彻底离开本地

  • ~2.31K 字
  • 次阅读
  • 条评论
  1. 1. 集成部署
    1. 1.1. 什么是集成部署?
    2. 1.2. 如何实现集成部署?
      1. 1.2.1. step0.检查配置
      2. 1.2.2. step1.上传hexo源码
      3. 1.2.3. step2.配置github action
  2. 2. 配置hexo++
  3. 3. 其他

利用HexoPlusPlus该项目归档,计划更换为Wexagonal,实现云后台,让博客摆脱本地

官方文档:https://wexa.top/start.html

集成部署

什么是集成部署?

看看平时,咱的hexo是什么样的工作流程吧

可以看到博客被分成了本地和云端两部分,
而集成部署则是将本地部分也搬至云端完成,让云端完成环境配置,生成静态文件等。而我们只需要修改markdown来编辑文章即可,HexoPlusPlus的作用就是帮助我们直接在网页端编辑markdown

如何实现集成部署?

方法多样,既可以靠heroku ,vercel这样的平台一键部署,也可以靠github action自动配置,本文介绍后者

step0.检查配置

本地先hexo d一遍,看能不能用。
再检查博客配置文件_config.yml是否使用ssh连接而非https,配置应该如下:

1
2
3
4
deploy:
type: git
repo: git@github.com:username/blog-page.git
branch: master

step1.上传hexo源码

创建一个github仓库,用来存放源码,再创一个,用来存放生成的静态文件。使用git上传源码,注意检查是否遗漏文件(比如有没有什么被gitignore掉的主题配置文件啊)

  • 如有文件未被上传,可能该路径下也是一个git仓库(比如主题目录),删去.git文件夹(该文件夹默认隐藏)即可
  • 也可能是被.gitignore文件排除了

step2.配置github action

生成密钥
ssh-keygen -f github-deploy-key
在放置源码的仓库的Settings -> Secrets内配置私钥,名称HEXO_DEPLOY_KEY
在放置静态文件的仓库的Settings -> Deploy keys内配置公钥,名称随意,如HEXO_DEPLOY_PUB,记得给读写权限
在放置源码的仓库新建文件.github/workflows/deploy.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
name: Hexo Deploy

on:
push:
branches:
- 源码所在的分支

jobs:
build:
runs-on: ubuntu-18.04

steps:
- name: Checkout source
uses: actions/checkout@v2
with:
ref: source

- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: '16'

- name: Setup Hexo
env:
ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.email "你的github注册邮箱"
git config --global user.name "你的github用户名"
npm install hexo-cli -g
npm install
- name: Deploy
run: |
hexo clean
hexo deploy

保存后会自动进行一次action,可以查看是否出现问题,
如果成功,应该会将生成的静态文件上传至博客配置文件_config.yml内写的地址,

此时我们已经将本地成功搬至云端,实现了集成部署

配置hexo++

官方文档已经写的很清楚了,本文只做一些补充

其他

源码仓库可以设为私有,也可以与静态文件同仓库而不同分支,但如果使用cloudflare page来渲染页面,建议还是分仓库,
因为任何分支出现更改,它都会尝试渲染一遍,这样当有文章更改时,你会等待两次渲染才能看到效果(第一次傻里傻气地渲染源码文件,第二次才会渲染静态文件,一次构建要等4分钟,两次就要8分钟,谁等得起啊) 现在又贼鸡儿快了。

有问题可以来评论区,但笔者没时间回答

分享这一刻
让朋友们也来瞅瞅!