用了将近三年的Movable Type 3版本, 上周五在升级到4的过程中, 发生了故障, 升级失败, 升级后的Movable Type 4没有能正确地显示汉字, 原因没有去深究, 估计是在升级时表数据发生了转换. 竞然没有博客数据库的物理备份, 只有导出来的逻辑备份. 将原来的数据删掉后, 导入逻辑备份, 也没有能准确显示汉字, 越来越觉得Movable Type使用的复杂了.

    在升级Movable Type之间, 一直在测试WordPress, 数据数据已成功导入到WordPress中了, 干脆就换一个博客平台吧. 了解一下WordPress后, 发现Movable Type 4在博客页面结构上, 是从WordPress学了不少内容, 在使用WP SuperCache后, 页面访问虽然没有静态的快, 但对付我这种小访问量的博客, 足够快了. 在迁移过程中, 遇到了两个花了比较长时间才解决的问题.

    第一个是WordPress用mod_rewrite来实现静态路径访问, 在这儿遇到了第一个问题. 博客中有两个子目录, 实现了访问控制, 在切换到WordPress后总是不能访问, 报404(页面不存在错误), 改来改去改了很多的路径重写规则, 都没有成功. 最后在.htaccess文件中加了如下一行才得以解决.

ErrorDocument 401 default

    第二个是发现博客文章的显示问题, WordPress对文章的内容做了很多的字符替换处理, 导致了有些代码段, 一行会变成两行, 将换行符换成了HTML中的换行标记. 在使用等宽字体显示代码时, 会出现不能显示的字符. 快速扫描了一下WordPress的代码, 不得不处理了一个wp-includes目录下的default-filters.php文件, 去掉了几行对文章内容进行字符处理的调用.

// add_filter('the_content', 'wptexturize');
add_filter('the_content', 'convert_smilies');
// add_filter('the_content', 'convert_chars');
// add_filter('the_content', 'wpautop');
add_filter('the_content', 'prepend_attachment');

    由于一直用Movable Type老版本, 文章内容已经很符合HTML规范了, 不处理才是比较准确的结果. 另外还改了一下搜索/分类/归档页面的模板, 这些页面中不显示文章内容, 只显示标题了.