hexo 多设备同步方案
方案原理
我们在本地计算机中编写的markdown内容存放在源码的source/_posts
中,当我们使用hexo g
来进行生成操作时,我们会在本地生成博客网站中的所有的静态文件。根据_config.yml
中设定的部署方案(一般是git
),当执行hexo d
时就会将静态文件上传到我们所设定的远端服务器。
那么实际上我们所面向的内容就分为两种:
- 编写博客文章的源码
- 上传到服务器的静态文件
也就是说,如果我们想要多个电脑对同一个hexo博客进行同步编辑,那么所需要同步的就是源码部分的内容。
最直接了当的办法当然是拷贝整个hexo博客源码文件夹,不过我们不太可能每次博客内容更新后都拷贝一份源码到U盘。那么既然手动同步不科学我们就可以利用自动同步,直接使用git仓库来实现。
事实上我们在源码根目录是能找到.gitignore文件,它的内容如下:
1
2
3
4
5
6
7
8 .DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
_multiconfig.yml
我们可以利用这个ignore文件,创建一个新的远程仓库,将我们的源码文件添加到这个git仓库中。不过需要注意的是,新创建的git仓库有自己的.git
目录,而源码中的.deploy_git
也是一个git仓库所以也存在.git
目录,而git是不能同一个仓库叠加多个.git
目录,所以我们拷贝源码到新仓库时需要删除.deploy_git
目录或者它其中的.git目录。同样我们有时是安装的主题是使用git方式,也会存在.git
目录,所以也要注意去除。
另外目录中的node_modules
是hexo所需的node包,这些内容并不需要上传到远端仓库,但是如果想要在新的电脑中正常使用hexo,需要在克隆好这个源码仓库后在其根目录执行npm install
命令,由于我们的仓库中是存放了package.json
文件,所以npm会自动帮我们下载所需要的包到node_modules
目录中。
总而言之,在使用hexo编写博客时,我们最重视的是source/_post
目录下的md文章,其次是_config.yml
或package.json
这类的配置文件,只要能够实现这些内容的同步,我们可以很方便的在一台新的电脑上搭建出同进度的hexo平台。当然,我们也完全可以在同一个仓库创建两个分支,一个分支用来存放源码数据,另一个分支存放发布后的静态内容,这样会更方便管理。