把这个博客静态化了

有朋友已经发现我为这个没什么人看的博客又买了个域名,换了个模板。 而实际上,后台还有更多的变化。

2014年底我把这个博客从原来的Google AppEngine + Micolog迁移到了 DigitalOcean VPS + Hugo

理由有很多。

当然最大的原因是因为Google瞎折腾自己的平台,感觉AppEngine商业化进行得不好,后继又推出了Compute Platform。让老用户觉得各种迷惑,而且商业化之后免费的流量动不动就被恶意爬虫给耗光了导致这个网站无法访问,过了一年多,居然也没有任何的改进。

之前看到很多人的文章说放弃AppEngine的原因,大体上无非是觉得:

  1. API太定制,容易被平台绑架。
  2. 付费用户在价格上对比AWS或者DigitalOcean之类的看不到优势。

而对于一开始只是想要免费午餐的我来说,在跟爬虫和overquota搏斗了一年多之后,也实在是没有了耐心。 反正免费的没有了,不如买个VPS,固定消费,省心。 况且现在GFW越来越丧心病狂,有个海外主机以后回国还能翻墙用。

不过AppEngine还会继续用,特别是它现在还支持Go SDK,部署个小工具还是没问题的。 另外这个博客的图床目前也在继续使用AppEngine。

之前用的Micolog这个AppEngine Blog系统其实早早地就被作者放弃了,用它的初衷其实是想自己折腾一下顺便练练python。 但是发现它对Google AppEngine API和Django环境的众多依赖让人无从下手, 加上AppEngine平台的开发工具支持一直很烂,本地的开发环境设置起来很麻烦。 我也是懒得去折腾了。

其实我大概已经用Markdown写了一两年的博客了,每次都是生成了HTML之后再贴到博客的源代码编辑器里去,博客系统的后台功能我基本上没有用过。

可能是年纪越大了越喜欢简单,工程做得越多,对复杂性就越有恐惧感。 所以静态化这个概念很快就吸引了我。 另外我也觉得比起存一堆HTML到数据库里,然后依赖博客系统的导入导出功能, Markdown实在是一种更好的带格式的存档方式。

于是就开始考察当下流行的静态博客生成程序,刚好用了一年多的Go, 自然地就选中了Hugo这个框架。相比名气更大的Jekyll,Hugo所声称的网站生成速度更快其实我并不太关心,只是觉得Go的语法比较熟悉,有问题好查看代码而已。

于是买了一个DigitalOcean最小的Instance,5美元一个月。

他们的社区文档非常好,基本上你想要做的事情都会有专门指引。 例如我参考了以下文档,结合Hugo的情况稍微修改了一下细节,就完成博客的搭建。 比起Google AppEngine长篇大论但又语焉不详的开发文档,实在是是为懒人定制的:

  1. how-to-deploy-jekyll-blogs-with-git
  2. how-to-install-nginx-on-ubuntu-12-04-lts-precise-pangolin

然后就是老的内容的迁移,Micolog基本上是模仿的Wordpress,可惜它的导出功能并不工作。 于是我干脆改了改代码,让它把所有文章一次输出到RSS Feed里,然后自己写了个脚本,把导出的内容转换成了适合Hugo的文件格式。 文章内容自带的HTML转换起来比较麻烦,好在之前也是用Markdown转换过去的,不算太复杂,就直接输出到md文件里了,Hugo在build的时候也基本上没有出问题。

至此,迁移完成。 一个简单又完整的博客发布流程也搭建好了:

  1. DownWriteAtom写文章。
  2. 用Hugo进行本地预览
  3. 用Git push发布到VPS服务器
  4. 用服务器端的Git hook触发内容的发布
  5. 用Nginx提供HTTP服务

可以说无论是添加内容还是改动这个博客外观和功能都已经变得比较方便了。

也许,今年可以多写一点东西吧。

comments powered by Disqus