前言
配置一个Hexo
博客往往需要作者倾注大量心血,而如果哪天电脑坏了或者换电脑导致Hexo
源文件丢失的话就是一件比较杯具的事。因此本文给出了一种自动备份Hexo
源文件到Github
的方法,能够在执行hexo deploy
命令后自动执行Git
命令以推送Hexo
源文件到Github
仓库。
原理
NodeJS
的事件监听机制能够监听Hexo
的事件。通过查询Hexo文档,找到了Hexo
的主要事件,见下表:
事件名 | 描述 |
---|---|
deployBefore |
在部署完成前发布。 |
deployAfter |
在部署成功后发布。 |
exit |
在Hexo 结束前发布。 |
generateBefore |
在静态文件生成前发布。 |
generateAfter |
在静态文件生成后发布。 |
new |
在文章文件建立后发布。该事件返回文章参数。 |
processBefore |
在处理原始文件前发布。此事件会返回一个地址,代表 Box(Box)的根目录。 |
processAfter |
在原始文件处理后发布。此事件会返回一个地址,代表 Box(Box)的根目录。 |
ready |
在初始化完成后发布。 |
通过查询上表发现,我们可以通过监听Hexo
的deployAfter
事件,待部署成功后自动运行Git
备份命令,从而达到自动备份的目的。
实现
将Hexo
目录加入Git
仓库
首先需要在Github
创建一个新的repository
,名字与本地Hexo
文件夹同名即可。然后进入本地Hexo
文件夹,按顺序执行以下命令:
git init
git remote add origin git@github.com:yourname/hexo.git
git pull origin master
再每次执行hexo generate
命令时,public/
、.deploy
、*.log
文件夹会重写更新,因此需要在.gitignore
文件(如果没有,手动创建一个)中写入public/
、.deploy
、*.log
以忽略这几个目录,加快备份的速度。
然后再顺序执行以下命令,将文件推送到Github
:
git add .
git commit -m "备份hexo源码文件"
git push origin master
这三行命令便是手动推送本地文件到Github
的命令,我们接下来要做的是让NodeJS
监听到Hexo
的deployAfter
事件后自动执行上述