导入 Movable Type 的旧文章

切换了 blog 程序之后,旧的文章就成了一个问题。

WordPress 的文章链接是目录格式的,而 Movable Type 的文章链接是 .html 格式的。除此之外,Movable Type 把每一篇文章静态输出成了 HTML 文件,而 WordPress 是动态生成。我在 WordPress 导入从 Movable Type 导出的文章后发现,我在 Movable Type 下用 Markdown 格式写的文章,所有自然段都合到了一起。一片文章成了一大段,这是完全不能忍受的。

所以我想的是,把 Movable Type 静态输出的 HTML 文件也复制到网站根目录下,但和 WordPress 的 PHP 文件都搅和到了一起,不便与管理。我只好在网站根目录下建立了一个 old 目录,把过去的站点都放在了那里。等未来做个转向,遇到以 .html 结尾的域名,就转到 old 目录去找旧的文件。

不过这样有一个很大的问题,就是这些旧的文章都没法通过 blog 程序来修改了。页面的样式不统一,用户从新页面上也看不到旧页面的链接了。而且明明已经写了那么长时间的 blog 了,这么一弄从表面上看上去只有两三篇文章,看上去也不舒服啊。边栏上 Archives 下面长长的列表看上去多有感觉啊。

虽然目前在 blog 程序界是 WordPress 和 Movable Type 两大巨头霸占市场,但没有形成一个统一的标准是个大问题。从 Movable Type 里导出来的文章,往 WordPress 里导入总是无法做到完美的。文章可以勉强导入,当然我用 Markdown 写的文章在导入后格式也不对了。如果页面里的图片什么的,是放在第三方的图床里,用 HTML 来引用的倒还好一些,可偏偏我的图片基本上都放在自己的服务器上,通过 Movable Type 来上传管理的,这样导入进去就完全不可访问了。

所以今天我决定克服这个问题。链接地址改变了,用编辑器弄个查找/替换就搞定了。而段落换行问题,我不知道是哪边的 Markdown 插件出的问题,所以就考虑在导出的文本文件中插入 br 标签来完成。我不确定能不能行,所以就先试试,写个小程序来逐行分析一下,看如果遇到“BODY:”就把之后的文字在每一行之后都加上 br 标签(Markdown 格式一行是一段),如果遇到“—–”就正常输出。完成后的代码在此:convert.rb

转换完成后,我试着导入进 WordPress,结果发生错误,原来是我的 PHP 设定里上传文件的体积限制是 2MB,而我要导入的文件刚刚超过了。于是去 /etc/php5/cgi/php.ini 里,把 upload_max_filesize 的值调高一些,重启 Lighttpd 后就正常了。

我目前的文章,加上昨天写的两篇和今天的一篇,一共有 476 篇。在导入的过程中内存占用最高大概有 70MB 左右。导入的速度很快,在上传完成之后大概有不到 10 秒就完成了。

至于切换的效果,目前看起来还可以。除了有些文章的开头我添加的小图标似乎有些问题外,其它的基本上都正常了。之前写的一些文章,被别的站点链接后,现在那些链接就失效了。之前我查看文档,勉强可以写个 .htaccess 来做转向,现在的 Lighttpd 我就不太熟练了,几天试了几次都没有成功。后来从网上看到了 user auth 模块可以用 .htaccess 文件来设定规则,等以后有时间再看看吧。

之前尽管我用 Movable Type 有很多不足,甚至让我感觉很痛苦,但我一直没有切换程序,就是因为切换的代价有些大。这次藉着这次换主机的契机,我狠心把程序给换了。现在看起来结果还是好的。虽然我也怀念 Movable Type,但切换过来之后的感觉反而是松了一口气,有一种解脱的感觉。

4 thoughts on “导入 Movable Type 的旧文章

    1. 唉,RSS 这个东西确实也麻烦,WP 和 MT 的默认格式不统一,换了之后就立马完蛋。我还没有做 RSS 地址的重定向,换了 web 服务器,对 Lighttpd 不大熟悉,做 redirect 有点麻烦。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据