从pivot迁移到hugo记录

如您所见,本站已经于数天前正式迁移hugo,抛弃了已经使用十五年的pivot。

实际上pivot早就不堪使用了,对我来说,主要问题有两个:

  • 现在用的模板主题不是响应式设计,对移动设备不友好,但是现在这个年代已经找不到新的pivot模板了,而且我用的这个模板是当初自己做的,现在实在懒得再自己重做一番。
  • 不支持markdown,其实最近几年的内容我都是用markdown写的,只是发布时再转成HTML,由于转换工具的更新,所以最终格式也变来变去,又不可能再人工再去弄。

至于功能之类的我倒是不care,毕竟只用最基本的功能,连评论的功能我都关掉了。

之前(2009年)曾经因为理由一,想这迁移到wordpress,但是又觉得wp太笨重了,一直懒得弄,就拖到了现在。

基于静态页面生成的markdown BLOG系统其实我早就试过,比如最早的Jekyll,但是ruby写的东西太慢了,而且安装也不方便,至于hexo我直接就没试,因为对js党素无好感——因为他们最爱重新发明轮子,并且经常挖坑不填,所以能不用就不用,以免被坑。

直到碰到hugo这个大杀器,go的速度真是太快了,安装也很方便,唯一的缺点可能就是主题选择比Jekyll这种老一辈少一些,至于hexo用户,可能多是前端党,所以主题又多又好看。但我不太care好不好看,好用更重要。

于是用hugo加minimo主题改造了一下本站,建个新站是容易的——虽然在配置模板的问题上也是花了一些时间——麻烦的是迁移旧文。更重要的是如何在迁移后保持链接不变。

为此我写了两段程序。

一段是基于pivot的export_genericmt工具改写的export_hugomd。前者是我09年基于官方工具修改的,详见《From Pivot to WordPress》。

这回改为返回文件格式为hugo的文章格式,当然不可能把原来HTML的内容改为MD,但还好MD支持嵌入HTML,所以也可以用。主要是导出文章元数据,以及把评论转为文末内容的MD格式。

当然最重要的是把原来的文章ID导出来,用于生成新文章的文件名,以保持原文链接有效。当然还是做了一个简单的重定向,把原来/entry/xxx/my_weblog这样的链接转到现在的/post/xxx/上。

顺便说一句,其间还发现原来代码中的一些BUG,已经顺手修复。

又因为懒得研究如何在PHP里生成多个文件并打包为ZIP下载,所以还是按原文合成一个文件方式下载,然后再写了一段python来分割文件,生成hugo所需要的系列文件。

两段程序都更新在GayHub了。

推送到[go4pro.org]