Wordpress 迁移至 Hexo

为什么要迁移至 Hexo

早在刚开始选博客系统的时候,我就在 Wordpress 和 Hexo 之间犹豫不定,然后选择了 Wordpress。之前选择 Wordpress 的原因是「方便」,手上有空闲的 VPS,而且 lnmp 环境一键安装包那么完善,Wordpress 当博客跑起来简直不要太简单。

而 Hexo 相对来说,还是比较年轻的博客系统,虽然网上很多关于「如何在 GitHub 上搭建 Hexo 博客」的资料,但写博客的步骤相比 Wordpress 还是要繁琐一点。

那我为什么现在又要换成 Hexo?这可能还是和工作习惯有关。之前在学校的时候,接触 Git 和 Markdown 不多,写博客自然会倾向于打开博客系统的后台,啪啪啪一顿写,提交按钮一点,走你,一篇博文就发出去了。

但是,现在已经是一枚「在职程序猿」了,接触 Git 和 Markdown 得越多,就越不喜欢 Wordpress 那种写博客的方式。而且,平常很少有一整片的时间去写博文,更多的是工作中遇到什么问题,或者突然有什么灵光,就随手建一个 .md 文件记录下来,如果使用 Hexo 写博客,那就只需要整理一下,生成相应的静态文件,再一键部署到 VPS。

还有另外一个原因,可能就是一直很喜欢像 Next 这样「性冷淡风格」的主题,而我在 Wordpress 难以找到相似的主题。考虑了种种,尽管 Hexo 也有很多不完美的地方,还是决定抛弃 Wordpress,拥抱 Hexo。

怎么迁移

把大象装进冰箱需要三步:打开冰箱门、把大象放进去、关上冰箱门。同理可证,将 Wordpress 迁移至 Hexo 也只需要三步:导出 Wordpress、Hexo 导入 Wordpress 的导出文件、清理工作。

导出 Wordpress

进入 Wordpress 后台,在「工具」里找到「导出」,按照需要将 Wordpress 的文章或者页面导出,导出得到一个 XML 文件,后续会用到。

使用 FTP 等工具将 Wordpress 网站目录下的 uploads 目录下载到本地,里面包含了从建站至今的媒体文件。

Hexo 导入 Wordpress

按照 [官方文档](https://hexo.io/zh-cn/docs/ “Hexo 使用文档”) 中的说明,在本地安装 Hexo。之后,参考 迁移教程 将之前从 Wordpress 导出的文件导入 Hexo。

导入成功后,会在 source/_posts 目录下看到生成的文章,同时每篇文章还有同名的文件夹(资源文件夹)。将之前从 Wordpress 下载的媒体文件(图片),按照和文章的对应关系,一一放进相应的目录下。

修改文章的 .md 文件,将其中的图片链接换为本地资源链接,具体请看官方文档。这里推荐一个 markdown 编辑工具 —— Typora,能够以「所见即所得方式」编辑,还支持数学公式的编辑和显示等等。

成功导入之后,可以用 hexo g && hexo s 生成静态文件,然后访问 localhost:4000 查看效果。

另外插一句,网上很多教程大多是将图片文件上传至七牛云等等公共云存储或者免费图床,我之所以没有这样做是有原因的。一是出于强迫症,我不希望自己的博文中的图片是外链的形式;二是我之前(以及现在)也在做图床(免费图床),深知图床不好盈利,说不定明天后天就倒闭了。

与其把图片交给充满不确定性的三方,不如从一开始就自己接管。GitLab 为个人开发者提供了 10 GB 存储空间上限的仓库,对于图片较少的技术型博文来说,完全是够用的了。

清理

导入成功之后,清理 Wordpress,将 Hexo 项目目录下 public 下的文件上传至 VPS,就大功告成了。至于「如何实现一键部署至 VPS」那就是另外一回事了,且听后续分解。

更新:已通过 GitLab 的 CI 实现自动编译 & 自动打包镜像,实现服务化。