前言
就在昨天,Masle 给我推荐了 HexoPlusPlus,一开始我还不是很明白。在仔细看了 HexoPlusPlus 的文档后,想到社团的博客有了这个会很方便。
为什么呢?主要是整个社团统计下来有电脑的没有多少人。像平时一样去发布文章,虽然可以在任何地方用文本编辑器写,但是要发布就得在电脑上用 Git
了,但是就我现在电脑上的 Git 来说,因为登陆了多个账户,导致上传经常会报错,社团的话不能指望他们能够自行解决。因此,配置 Github Action
来自动部署就很有必要,而且也会变得很方便。
但是光配置 Github Action 还不够,GitHub 对某些人来说还不够好用,而且有时还会打不开,因此就通过 HexoPlusPlus 来更好的管理文章。
曾经我还想过在手机上用 Termux
安装 Ubuntu
然后安装 Git、Node.js、VScode,使得能够在手机上编辑博客。然后……我输了,在网页中打开浏览器输入密码登录到 VScode 后就白屏了,手机并没有卡,浏览器也没有卡,用的同是微软家的 Microsoft Edge
。对此也查了不少方法,没有一点作用,只好作罢。
配置 Github Action
Github Action 用起来像是在用一台远程的电脑,可以自选操作系统,也可以很方便的安装运行环境
和库
,但是“这台电脑”用完就会被销毁,需要时重新被创建。
上传博客源代码到 Github
若要使用 Github Action 和 HexoPlusPlus,就必须将博客源代码(根目录)上传到 Github。
在我的方法中,既可以上传到网站仓库的分支中,也可以上传到其他的仓库,可以是私有仓库。
具体上传方法就不多说了,这里我因为登陆了太多账户,Git 有点异常,就通过 Github Desktop
来创建仓库,并将仓库克隆下来,把 “.git”文件夹复制到博客根目录下。然后在 Github Desktop 中添加本地仓库,把博客根目录添加进去。
接着我们需要在博客根目录找到或创建 .gitignore
文件,将其内容修改为:
意思是不上传“public”和“.deploy_git”文件夹。
隐患!
由于没有上传“.deploy_git”文件夹,每次自动部署博客时,都会当作第一次发布并强制推送。
目前仅发现该操作产生的不良反应:
- 若文章内未填写 updated 属性,文章的更新日期将会是自动部署时的日期。(对于 Butterfly 主题,导致“最新文章”栏目中一直出现旧的文章)
最后将博客上传到 Github 仓库中。
设置自动部署
更改 Hexo Depoly 设置
打开博客根目录下的 _config.yml
文件。
将 depoly 中的 repo 仓库链接更改为 SSH 链接。
你会看见 Github 提示你 “You don't have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS.”。所以接下来我们来创建 SSH 密钥。
创建并配置 SSH 密钥
对于 macOS 和 Linux,直接自行下面的指令,Windows 则需要先开启 Git Bash
(安装 Git 会附带 Git Bash)然后运行下面的指令。
运行之后可以在你的用户目录(Home)下找到两个文件,分别名为 github-deploy-key
和 github-deploy-key.pub
。
接着来到存放博客源代码
的仓库,点击Settings
、Secrets
、New repository secret
。
Name
处填写 HEXO_DEPLOY_KEY
,Value
处填写 github-deploy-key
文件中的内容。然后点击 Add secret
。
来到存放博客网页
(Hexo depoly)的仓库,点击Settings
、Deploy keys
、Add deploy keys
。
Title
处填写 HEXO_DEPLOY_PUB
,Key
处填写 github-deploy-key.pub
文件中的内容,然后勾选 Allow write access
,最后点击 Add Key
。
配置 Github Action 工作流
接着在博客根目录下新建 .github
文件夹并在 ".github" 文件夹中新建 workflows
文件夹,最后在 “workflows” 文件夹中新建一个任意名称的 .yml
格式的文件。
在其中填写如下内容。需要将第 19 行的 example@example.com
换成你的 Github 登录邮箱,将第 20 行的 example
换成你的 Github 名称。
接下来,我们再将博客根目录上传到仓库,就可以等着看效果了。
当出现 Github Action 页面出现类似下面的内容就表示成功了。
前往博客网页的仓库(分支)可以看到已经更新了。
配置 HexoPlusPlus
接下来配置 HexoPlusPlus,官方的文档说的很清楚,配置方法看官方的文档就足够了。
22.06.22 更新:
Qexo
相比 HexoPlusPlus,我认为 Qexo 会更好用,界面也更加美观,而且 HexoPlusPlus 已经停止维护了。
参考与引用
- 快速上手 | HexoPlusPlushttps://hexoplusplus.js.org/start/
- GitHub Actions 来自动部署 Hexo - 知乎https://zhuanlan.zhihu.com/p/170563000
- 【干货】Luke教你20分钟快速搭建个人博客系列(hexo篇) | 自动化部署在线编辑统统搞定 | 前端必会!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/av626367723/