基于Github Actions实现Hexo博客自动切换主题

0
字数 316
阅读时间 1 分钟

前提条件:

  1. 已经熟悉基于 Github Actions/Pages 的 Hexo 博客自动构建发布并已经有实践
  2. 使用的博客主题可以使用主题配置文件_config.yml 切换配色,比如:hexo-theme-cactus

总体上来讲是基于 Github Actions 的 schedule 触发器来实现的。

创建白天/黑夜主题

在 workflows 创建两个 schedule 触发器

  1. 到点触发黑夜模式
name: switch dark

on:
schedule:
# UTC时间,在北京时间基础上-8小时
- cron: "30 11 * * *"

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- name: 1. git checkout...
uses: actions/checkout@v2
- name: 2. setup nodejs...
uses: actions/setup-node@v1
- name: 3. install hexo-cli...
run: npm i hexo-cli -g && npm i
- name: 4. switch theme and hexo clean and generate public files and deploy public files to 'liuzhuoming23.github.io' repo...
# 使用sed命令替换主题目录下面的_config.yml文件关于主题的配置并构建发布,如果想要切换的主题名和当前主题名一致,则不会切换
run: |
git config --global user.name "xxx"
git config --global user.email "416561115@qq.com"
sed -i 's/colorscheme: light/colorscheme: dark/' themes/cactus/_config.yml
hexo clean && hexo d -g

保存为 switch_dark.yml 到/.github/workflows/目录下。

  1. 到点触发白天模式
name: switch white

on:
schedule:
- cron: "0 23 * * *"

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
steps:
- name: 1. git checkout...
uses: actions/checkout@v2
- name: 2. setup nodejs...
uses: actions/setup-node@v1
- name: 3. install hexo-cli...
run: npm i hexo-cli -g && npm i
- name: 4. switch theme and hexo clean and generate public files and deploy public files to 'liuzhuoming23.github.io' repo...
run: |
git config --global user.name "xxx"
git config --global user.email "416561115@qq.com"
sed -i 's/colorscheme: dark/colorscheme: light/' themes/cactus/_config.yml
hexo clean && hexo d -g

也保存为 switch_white.yml 到/.github/workflows/目录下。

然后提交 workflows 相关代码。等到设置的时间,就会自动触发切换主题模式。


Java8比较器Comparator的多条件排序用法 简述手机扫码登陆原理