是的,我又双叒叕换博客程序了。

话是这样说,其实也没有很频繁啦,上一次从 WordPress 迁移至 Ghost 已经是一年多前的事了。这次是从 Ghost 迁移至 Hexo,一个静态博客生成器。总体来看,我对博客程序的选择是越来越轻(zhuang)(bi)化了。

目前,本博客已经完全迁移至 Hexo,包括所有的文章和主题。不过话说回来现在回头去看两年多前写的文章,真的挺尬的,行文风格完全不一样,超尬 (つд⊂) 目前我在用的这个主题(Seventeen)已经陪了我快三年了,之前我把它从 WordPress 移植到 Ghost,现在到了 Hexo 我又把它给移植过来了,我也是爱得深沉啊(笑)

既然现在迁移完成了,我打算列举一下我迁移的理由,算是个记录。

一、动态博客的优点

动态博客肯定是有一些静态博客所无法实现的优点的,不然我之前也不会一直使用动态博客,而没有考虑过使用静态博客了。

  • 动态博客功能强大,插件众多,甚至能当 CMS 用;
  • 数据存储基于数据库,灵活性强;
  • 有管理后台,发布、更新文章等操作方便;
  • 自带的附件、站内搜索、评论系统等功能。

那我为毛要选择迁移至静态博客呢?

二、Ghost 太鶸了,真的鶸

在迁移之前,我使用的是 Ghost 这个基于 Node.js 构建的动态博客程序。

我最开始选择它就是因为受够了臃肿的 WordPress 而看中了 Ghost 的简洁。但是这一年使用下来,我对 Ghost 的热情也渐渐冷却,对它感到不爽的地方也多了起来。说到底,作为一个普通的用户来看,我认为 Ghost 并没有实现多少「只有动态博客才能做到」的功能。

  • 孱弱的主题系统。是的,如果你开发过 Ghost 主题,你就会感到 Ghost 的主题功能是有多么的鶸(以下情况截止至 Ghost 的 0.11.9 版,即 2017-05-07,也许 Ghost 之后的版本会有所改善)。
    • 在 Handlebars 模板中,你只能使用 Ghost 提供的有限变量,你甚至无法在 if statement 中使用稍微复杂一些的表达式(当然,你也可以称赞这是遵循逻辑与视图分离);
    • 用户自定义?不存在的,用户在不修改主题文件的前提下能修改的就只有博客标题、LOGO 等基本信息以及导航栏。而且导航栏标题中的 HTML 标签永远都会被转义,不修改 Ghost 源码关不掉,想放个图标都不行;
    • 小工具、换主题颜色、换 Schema?直接改主题或者 Ghost 的源码去吧,否则你没有任何方法为你的 Ghost 主题添加一个自定义配置文件,因为你根本读取不到。
  • 没有原生评论系统,你必须和其他静态博客一样去使用如 Disqus、多说(已经倒闭了)之类的第三方评论系统;
  • 没有搜索功能。为什么你一个动态博客和静态博客一样不支持站内搜索?极简风?
  • 没有附件上传功能。好吧我也用不到这个,交给图床去做;
  • 不支持用户自行截取文章摘要,不修改源码无法实现类似 WordPress 的 <!--more--> 功能;
  • 虽是打着简洁轻便优美的名头,但是在我看来 Ghost 整体已经日渐臃肿,尤其是 1.0 Alpha 版,看源码看得我一个头两个大。当然,你也可以说是我太low,不懂它的架构优雅😀
  • Markdown 支持不好,渲染经常出问题,而且连个表格都没得插;

虽然 Ghost 有这么多不完善的地方,但毕竟人家还处在 0.x 的版本号阶段嘛,也不是不能理解,因此我也愿意继续使用它,等待它慢慢成长完善。但是后来我在试用 Ghost 1.0 Alpha 的早期版本时(当时 Alpha 页面上介绍的是 Brand New Editor,我挺心动的),我惊讶地发现 Ghost 团队在 Alpha 甚至做出了【取消 Markdown 编辑器改为普通富文本编辑器】的神奇决定……虽然半个月前的 Alpha.21 已经重新回归了 markdown-only 编辑器,而且换了个新的 Markdown renderer(官方自己也承认原来的渲染器有着 a whole heap of syntax bugs)。但是很可惜,当我得知这条消息时,我已经完成了博客的迁移工作 ‾\_(ツ)_/‾

三、市面上其他的动态博客

我也有想过换成其他的动态博客,但苦于找不到合适的。

  • WordPress:臃肿,运行速度慢,架构落后;
  • Typecho:速度什么的都很不错,但感觉架构不够现代化;
  • Canvas:够现代化了(基于 Laravel),但是运行速度屌慢,功能也不完善。

四、静态博客的优点

相比起动态博客,静态博客肯定是有一些它独有的优点的,不然我也不可能会考虑耗费时间精力去做迁移工作。

  • 文章以一个个纯文本文件保存,便于管理备份(Git 或者直接一股脑 zip);
  • 可以直接用我喜欢的编辑器编辑博文(推荐 Typora,超好用);
  • 生成的结果就是些静态页面,放哪里都行,托管、迁移也方便,不用耗费太多精力去维护;
  • 性能铁定比动态博客强(我就是因为性能问题而放弃了 WordPress);
  • 安全性高,不用担心博客程序曝出各种 SQL 注入之类的漏洞(参见 WP);
  • 我喜欢纯文本、Markdown,和简单优美的东西 :P
  • Jekyll、Octopress、Hexo 等静态博客生成器的生态圈也很发达;
  • 静态博客 ZHUANG BI 啊

五、静态博客的缺点

当然,静态博客也是有缺点的,不然大家都去用静态博客了。

  • 没有自带的评论系统(我用 Disqus);
  • 没有自带的搜索功能(我直接用 Google 的 site: 搜索限定符);
  • 没有后台,不能随时随地发表文章(毕业了,坐在电脑前的时间也多了);
  • 操作复杂,难以上手,一般人玩不转(对于 Geek 来说当然小菜一碟)

六、为啥不自己写个博客程序呢?

其实我也不是没有想过啦。

  • 不想造轮子,现有的博客程序都挺好的;
  • 我自认为不需要通过写一个博客程序的方式来巩固我的知识以及展示「我会○○技能哦」,维护也麻烦。写个博客程序不难,但我希望写一些更有意义的玩意儿;

七、我依然坚持独立博客的理由

引用阮一峰老师所言[source]

喜欢写 Blog 的人,会经历三个阶段。

第一阶段,刚接触 Blog,觉得很新鲜,试着选择一个免费空间来写。

第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。

第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。

三年过去了,目前我依然处于第二阶段。那我是为什么没有放弃独立博客呢?

  • 免费的静态站点托管服务(GitHub Pages、Coding Pages)总有不少限制和不便之处,而且免费的才是最贵的;
  • 至于收费托管服务……那为啥不自己买个 VPS 呢?还能跑其他程序;
  • Medium、简书之类的平台虽然可以专注于写作,但是不好进行自定义与功能的添加,个性化功能过于局限,样式模板千篇一律,不好装逼
  • 并没有觉得维护独立博客很麻烦,专注产出内容之余折腾下搭建、模板,也挺有意思的 ;)

最后引用一句 Farbox 首页上我很喜欢的一段话:

博客的意义

除了记录生活,博客让作者变得平静、幸福、以及更优秀,结交到性情相近的朋友,甚至让薪资涨幅超过不写博客的一些人。