最近把博客搬到了 Hexo 以及多台 Mac 上同步那点事 | Soledad
安装与配置
这部分教程有很多,谷歌一搜一大把,本文的重点也不在这里,该部分可参考 Hexo 官方教程。
有一点值得提一下:npm install (不接参数)命令会安装在 package.json 文件中列举的依赖库。熟悉 iOS 开发的朋友会发现,npm 对 Node 包的管理和 CocoaPods 对 iOS 第三方库的管理方式很像。参考链接点这里。
如何迁移
如果回想一下我们会发现,其实在 Octopress 里我们主要修改的是 _posts 文件夹中的 .md 文件(另外还有 _config.yml 以及主题修改等配置文件)。所以我们就没什么好顾虑的,只要保存好 _posts 文件夹以及一些配置文件就好。
很巧的是,Hexo 对博客文件的管理和 Octopress 十分类似,所以迁移的过程十分轻松。官方文档中对迁移也有涉及。
分析 Hexo 生成页面的主要过程
在使用 Git 进行多端同步之前,我们需要了解关于 Hexo 框架的一些常识。
平时写博客最常用的命令有:
hexo new "title":会在 source/_posts 文件夹下生成相应的 md 文件。hexo g:根据 source 文件夹中的内容,以及外部的配置文件信息生成静态网页文件,并存入 public 文件夹下。hexo d:将生成的网页文件进行部署,并将 public 文件夹的内容推送到远端 master 分支。(前提在 _config.yml 中配好)
关于 Hexo 根目录下的几个文件:
- package.json :存放 Hexo 依赖的库的信息。
- node_modules :存放安装的库
- db.json :缓存文件
- .deploy_git(点号表示该文件为隐藏文件) :存放着待 push 到 GitHub 上的代码,也就是说,在执行
hexo d时,会和 public 文件夹的内容同步。 - 其他的官方文档都有介绍,不解释了。
通过 GitHub 在多台 Mac 上同步博客
如果你上面都配好了,就可以正常写博客了。但现在遇到一个问题,比如家里跟公司的电脑我都要用来发布博客,怎么保持多台 Mac 上的文件同步呢?
思路
利用 GitHub 进行代码托管。我们知道,在每次 hexo d 之后,public 文件夹下的内容会 push 到远端 master 分支。然而其实 master 分支对我们同步没有任何作用,因此我们要做的是,如何同步 source 目录,以及配置文件等,也就是说,如何同步生成 public 文件夹中内容的源文件。
我的答案:再创建一个 source 分支,单独用来同步源文件。之后每次在 Mac 间切换的时候,只需要先 git pull origin source就好,编辑完之后记得 git push origin source。
具体实现较易,具体的命令就不写了,自己动动脑吧,总不能上厕所都想着让别人帮你扶好JJ。
。
给几个链接供参考:
可能会帮到你的命令和可能出现的问题
- git rm -r –cached . (清除缓存,将所有文件解除 tracked 状态)
- 提示 Module version mismatch 错误。解决办法见该篇。
- 如果使用了第三方主题,那么 themes 文件夹推荐使用 git submodule 来管理,关于子模块的使用点击这里。
最后,谨以一则名言结尾吧。
Only understand the rules, can better use of the rules.