从 Gitblog 迁移到 Hexo

从博客建立开始,一直都是使用 Gitblog 来构建博客。今天终于完成了博客的迁移,并从 Vultr 迁移到了 GitHub,后试运行一段时间,发现 GitHub 国内访问比较慢,又转到了 Coding

为何选择 Gitblog?

刚开始想搭建博客其实是为了想有个记录自己学习的笔记的地方,另也可以发表一些自己其他的文章。当时选择博客系统有几个标准。

  • 便利性:要足够简单便捷,我只管写文章,部署好后不需要太多维护。
  • 漂亮:有一定的主题,界面清新足够简洁。
  • 无后台:我讨厌像 wordpress 那种需要在后台编辑维护的,我觉得我就是想写个文章,发布而已,没必要弄的那么麻烦。
  • 支持 MarkDown:这个是必须的,时间就是金钱,没必要将时间浪费在写文章的格式上。

综上所述,Gitblog 还是符合我的要求,依赖与 PHP,当时手头上也有台 Vultr 的服务器(纽约机房),故就部署上。

舍弃 Gitblog

虽然 Gitblog 是符合我当时的需求,使用时间久了之后,越发觉得 Gitblog 的短板越来越明显

首先是作者@jockchou 弃坑了,虽然随后vc12345679也为项目提供更新,但也仅限于稳定性维护。

其次其实 Gitblog 主题十分少,功能也相对单一,例如搜索,图片的主题,我都不太满意,故此我开始寻找新的博客系统。

初探 Hexo

这只是一片流水账,并不是记录如何部署 Hexo,如需要请看 《Hexo 部署手册》以及《NexT 主题文档》

经过一轮 Google 之后,我发现了 Hexo 比较多博客使用,另外主题非常丰富,比较热门的主题就是我现在的 NexT 主题,该有的功能全部都有了,特别适合我这种不会任何前端语言的小白使用。

我在 MacOS 中安装了 nodejs,成功部署了 Hexo。

迁移博客文章到 Hexo

由于之前都是用 Gitblog 的格式来编写 MarkDown 文档,文档头部需要定义文章的日期,类别,内容分类等信息。但这些信息跟 Hexo 是完全不兼容的,故此我需要将所有博客文章都要修改文件头部,并以前文件的附件存放都是随意存放,而 Hexo 则是建立资源文件夹的方式来提供文件下载链接的,故此我需要将图片、附件下载等资料全部迁移为 Hexo 的兼容格式。

其实用个 sed 折腾一下也就完事,但最近工作比较轻松,一直以来都没有学习过如何编写 shell 来解决问题,故此这次迁移过程我就用了 shell 来解决。

Gitblog 迁移到 Hexo 脚本(仅支持 MacOS)

脚本使用方法:

  1. 将脚本和 Gitblog 的 Blog 文件夹一齐复制到 Hexo 的博客根目录下。
  2. 编辑 gitblog_to_hexo.sh 中的 blog_url="blog.neroxps.cn",将其改成你的博客网址。
  3. 赋予脚本可执行权限后运行即可。

没有系统的学过 shell,一开始就只是以为 shell 只是将所有命令打包后就好了,后来发现其实还挺难的,可能我没啥程序员天赋,特别是处理逻辑问题感觉越写越 LOW,感觉大牛几行代码搞定的事情我花了整个 function 去解决。

整个脚本可以处理情况有:

  1. 找出 blog 文件夹内所有以 .md 结尾的文件,并复制到 Hexo 的 ./source/_posts文件夹内。
  2. 将 Front-matter 替换为 Hexo 格式。
  3. 找到之前博客所有的图片路径迁移并修改为资源文件夹的相对路径格式。
  4. 找到所有提供下载的附件文件,针对这些附件文件名再寻找所有的 MarkDown 文件有调用这些附件的全部都修改为支持的下载路径。(如果是一个文件被两个 MarkDown 调用,则会产生两个附件文件。ps:我也没有这种情况,所以也就没考虑进去了)

托管到 Coding

Coding 是国内首个一站式云端软件服务平台,于 2014 年 2 月在深圳成立,并于北京、上海、成都、西雅图设立分部。

可以说是个国内版的 GitHub,也提供 Pages 服务,只是如果要用自己的域名的话,需要放 Hosted by Coding Pages 标签在站点首页,否则会先经过一个 Coding 的广告页面再跳转到博客首页。

但是 Coding 国内外都有服务器,速度快,故此比 GitHub 还是优胜的。

最后

其实 Hexo 我个人感觉还是不错的,深受一些前端工程师喜爱,拥有很多开源的主题。

最后,对 Gitblog 说再见了,感谢你给我提供了一年多的博客支撑服务。