之前一直考虑Hexo的异地更新问题,例如在下午学校电脑上更新一篇文章后,晚上回家要在下午更新的那篇文章的基础上,再更新一篇文章。这种情况下同步是主要要解决的问题。
当新建Hexo文件夹的时候,可以发现hexo init的时候会创建一个.gitignore文件。众所周知.gitignore文件的用途是Git添加到工作区、暂存区的时候忽略项目中文件名包含在.gitignore里的文件。那么官方的意思就很明显了,让我们使用Git来对这个文件夹进行管理,而Git的拿手好戏正是检查项目版本的异同,更改情况,然后更新,同步。
了解这一点之后,我们就可以使用Github或Coding或其他的代码托管平台进行异地同步Hexo。还有一点是,Github和Coding都有部署静态页面的Pages页面对Hexo这种博客网站有着天生的契合性。
首先在Github或Coding上建立两个项目(也有说法可以同一个项目设置两个branch,但由于还没测试成功过,所以不在此讨论),分别储存Hexo配置文件夹(暂命名为master)和部署的静态网站页面(即hexo g命令部署出来的public/文件夹里的页面,暂命名为blog)。然后更改master里的_config.yml配置文件:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: #blog仓库ssh地址
branch: #主分支master
以上是更改部署方式为git,通过git部署到blog仓库。但是使用git部署方式需要安装npm的git部署插件:
$ npm install hexo-deployer-git --save
另外,如果你的博客是主域名是一个主页,博客放在另一个文件夹里,例如主域名domian.com存放的不是博客而是一个类似聚合页面的主页,博客放在domain.com/blog页面里,这时候可能hexo s测试时页面加载正确,但部署后会发现css没有加载,这个时候要更改master里的_config.yml:
root: /blog/
然后在另一台电脑上,首先克隆master仓库(添加ssh之类的基础操作不作说明。blog仓库主要是部属用,本地无需修改,以后更改也只是更改master仓库的内容,因此只需克隆这一个仓库即可。)
因为Hexo需要Node.js,所以要先安装Node.js。然后安装Hexo:
$ npm install -g hexo-cli
然后需要在项目文件夹里安装Hexo,以代替hexo init这一步:
$ npm install hexo --save
如果这个时候没有安装Hexo就使用Hexo命令例如hexo s,会提示有错误:
$ hexo s
ERROR Local hexo not found in ~\Desktop\hexo
ERROR Try running: 'npm install hexo --save'
提示中也告知了解决方法。
等安装完毕再执行hexo s,也许会报错,也可能没有,原因是有的主题会需要依赖没有安装。这时候就回归之前写的一篇文章了,以maupassant主题为例:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm install hexo-renderer-pug --save
$ cnpm install hexo-renderer-sass --save
这样就能同步之前所有的配置,并继续之前的进度。