关于hexo butterfly主题的官方文档在此~

关于yaml的一些介绍

众所周知hexo的主题配置文件为yaml文件(如butterfly主题的_config.butterfly.yml)。

其实yaml文件与在语法上与json文件类似。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 键值与变量对应
key0: 123 #注意冒号后有一个空格
key1: "debian"
key2: debian #对于字符串值,无所谓是否有双引号
# 数组
key3: [114,514,1919,810]
key4:
- 114 #注意有一个空格
- 514
- 1919
- 810
# 从属关系
# name:{key0_0:{key1_0:[b,s,false],key1_1:"1145"},key0_1:123}
name:
key0_0:
key1_0:
- b
- s
- false
key1_1:
1145
key0_1:
123

就这些了。

_config.butterfly.yml 配置额外说明

官方文档说的很详细,在此补充一点点。

配置

menu添加链接

多个相同社交链接:

咱有好几个常用邮箱,因此只能使用多个相同图标,众所周知在同一个object中不能出现相同键值对。

但实际上 social-favicon 的键值对应的是font-awesome的class,所以:

image

(加上些奇奇怪怪的classname)

“美化”(其实就是修改主题颜色)

image

cdn

可以在配置文件底部将第三方cdn改为local(那么需要额外安装image

原来主题默认cdn是jsdelivr,但由于某些众所周知的原因而难以使用,解决方法见下

其实这种方法也可以解决cdn问题,~可是咱搞不懂 搞了半天没有成功(悲。

白嫖 GitHub CI/CD 部署

~~每次都要开电脑写太烦了,~~有了这个就可以直接用网页版GitHub写,或者clone仓库到本地机上来写了。

自动部署

可以在同一个仓库内进行,但考虑到仓库体积问题建议分为两个仓库。

  • 新建一个仓库
  • 添加 Actions Key (Settings => Secrets => Actions),内容为自己的local ssh private key(在本地使用ssh-keygen -t rsa -b 4096 -C "Hexo Deploy Key" -f github-deploy-key -N "",然后到.ssh/id_rsa中获取private key),命名为HEXO_DEPLOY_PRIVATE_KEY(若是其他的记得在下面 workflow file 里改掉配置)
  • 添加 workflow
    转到 Actions

image

清空默认的workflow

image

,加上如下的内容:

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
42
43
44
45
46
47
48
49
50
 # workflow name
name: Hexo Github Actions

# master branch on push, auto run
on:
push:
branches:
- master ## 取决于你的源文件存放分支名

jobs:
build:
runs-on: ubuntu-latest

steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout Repository master branch
uses: actions/checkout@master

# from: https://github.com/actions/setup-node
- name: Setup Node.js 10.x
uses: actions/setup-node@master
with:
node-version: "10.x"

- name: Setup Hexo Dependencies
run: |
npm install hexo-cli -g
npm install
- name: Setup Deploy Private Key
env:
HEXO_DEPLOY_PRIVATE_KEY: ${{ secrets.HEXO_DEPLOY_PRIVATE_KEY }}
## (同上面的secrets name)
run: |
sudo timedatectl set-timezone "Asia/Shanghai"
## 时区不建议修改(根据自己所在地区确定),否则可能使hexo时间混乱(例如已经 post 的文件并不被渲染)
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRIVATE_KEY" > ~/.ssh/id_rsa
## (同上面的secrets name)
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
- name: Setup Git Infomation
run: |
git config --global user.name 'Bro-Xun' ## 你的 GitHub 用户名
git config --global user.email '[email protected]' ## 你的 GitHub 绑定邮箱
- name: Deploy Hexo
run: |
hexo clean
hexo generate
hexo deploy

记得在源文件中的 _config.yml 底部修改deploy设置
例如:

image

链接本地仓库

1
ssh-keygen -t rsa -C "[email protected]"

将本地的 ssh key 添加到GitHub Settings

仓库clone到本地:

image

1
git clone [email protected]:Bro-Xun/123.git

提交:

1
2
git pull # (保证本地内容最新)
git push

解决cdn问题

使用国内cdn

推荐dogecloud(要实名认证)

使用 GitHub Pages

众所周知GitHub pages 提供免费的 “速度可观”的网站托管服务。所以咱就发挥白嫖精神 勤俭精神,使用 GitHub Pages 作为cdn

毕竟短期内*.github.io/path 不太可能被ban

(打开控制台网络面板,把需要用到的内容保存下来,上传到GitHub任意公开仓库)

image

记得准备好 font-awesome 的依赖文件(处于image 的前一目录 webfont文件夹下)如图:

image

然后修改配置文件:

修改方法示例

然后就不会再碰见 connection_reset 了:

舒服