WordPress到hexo搬家小记

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中有超过16.7%的网站使用WordPress。到了2011年8月,约22%的新网站采用了WordPress。WordPress是目前因特网上最流行的博客系统。

前言

从08年开始玩WordPress,着迷于她的强大和灵活,臣服于她强大的themes机制和plugins机制。当是还有不少博客专门研究wordpress,我也曾经深入的研究过其中的一些原理,还开发了sablog-x转wordpress的工具。

我为什么要放弃WordPress?

时过境迁,不再是曾经意气风发的少年,折腾的少了,内容更新也缓慢,由于WordPress太过庞大,插件质量也参差不齐,导致WordPress出现过很多的漏洞,经常发现内容被篡改,文件被篡改,被垃圾评论骚扰,甚至有些内容被改丢了,而发现的时候可能已经过去几个月了。

我为什么选择hexo?

  • 其实最主要的原因,是最近开始关注Node,而hexo是目前最流行的Node博客系统。而为什么关注Node,说来话长,这可能要从PHP为什么是“最好的语言”开始说起,而我不得不承认JavaScript将成为下一个“最好的语言”。

  • 生成纯静态网站,可以直接发布到Github,几乎不存在性能问题和安全问题,而那些你觉得不可能静态化的内容,用服务就好了,比如:评论、搜索

  • 基于Markdown文件的博客系统,Markdown让写作更美好,曾起何时我也有过这样一个想法,想开发一个基于文本的博客系统,不过最终没有开发完那个系统,后来我用那个思想开发了 http://qltx.cn ,里面有一个从目录文件生成数据的算法。

  • 轻量,有完善的中文文档 https://hexo.io/zh-cn/ ,作者是台湾开发者@tommy351

迁移过程

这里并不想写安装过程,安装步骤可以去官方看文档,简单记录一下数据迁移过程中遇到的一些问题

  • npm 安装速度慢,经常卡住,遇到这种情况可以把vpn调整到全局模式重试

  • 数据转换官方提供了migration插件,通过命令行导入wordpress是非常快的,不过转换完毕后我的hexo就无法访问了,这种情况通常是因为文章中的某些字符无法解析,排除法找到那篇文章处理一下就可以了。

  • hexo中的分类和WordPress中的分类不同,一篇文章只能属于一个分类,所以要调整所有文章的分类内容

  • 官方推荐的很多theme安装后都无法使用,这是版本兼容性的问题

  • 迁移过来之后WordPress中的附件需要处理,我的做法是把整个wp-content目录原样放到了public目录下,这会有一个问题,就是每次generate都会被清理掉,所以更好的办法是放到第三方

  • 评论使用disqus,注册完毕要验证邮箱,创建app,并且要设置安全域名,这样才能成功加载,在disqus中导入WordPress的备份数据可以完成评论的迁移

  • WordPress中的gallery标签在hexo中全部失效,可以用hexo中的photos属性,因为缩略图布局的缘故,所以我改动了theme,增加了一个wpphotos属性,并且用脚本将WordPress中的gallery全部转成了url,caption的格式

  • 后期我对默认theme做了大量的改动,如果想找到更多的themes,可以去官网或者看这篇文章 http://www.zhihu.com/question/24422335

说点儿题外话

在迁移的过程中我又重新整理了我写过的所有文章,一共有500多篇,感慨自己曾经的执着、稚嫩,而那大概400篇文章,将永远沉睡在草稿中。

从我第一次搭建博客到现在已经有10个年头,维护这个网站花掉了我大量的精力,几乎伴随着我整个大学时代和职业生涯,甚至还有高中的一段时间,从一个技术小白到一名web工程师,我在整个过程中学到了非常多的技术知识,也对人生有了很多新的感悟,虽然这里并没有写出特别好的技术类文章。

如果说有什么东西见证过我的青春,那一定就是这里。