按理来说,应该是一个很简单的过程。从多说导出标准的备份文件,导入 Disqus,就完事了。但是我就整整的折腾了几天,评论是导入进去了,但是在博文页面始终没有把原来的评论显示出来。今天下午,甚至向 Disqus 官方发送了求救邮件。

就在刚才,才发现原来 Disqus 是根据文章的 URL 作为 Primary Key 的,而我新的博客系统的文章 URL 结尾比原来的少了个 /。擦,就是这一个字符,导致没有把原先的评论显示出来

1
2
Old: http://example.com/article
New: http://example.com/article/

导入的具体过程

首先,在多说的后台将评论(包括文章)导出为一个 export.json 文件。这个文件格式是不被 Disqus 认的,所以我们得把它转换成 wordpress 导出的文件格式

轮子已经有人造了,我们就不再重复造轮子。使用这个轮子 JamesPan/duoshuo-migratorexport.json 进行转换

1
2
pip install lxml
python duoshuo-migrator.py -i ~/Desktop/export.json -o disqus.xml

将文件转换为 disqus.xml

最后把 disqus.xml 通过 Disqus 后台的 Discussions -> Import 进行导入。官方写着24小时会处理完队列,实际上,如果评论少的话,马上评论就被成功导入进去了

反正,就得坑在 Disqus 是根据文章的 URL 作为 Primary Key ,这个是文章的唯一重点

写在最后

其实,这篇博客没有在表达多说比 Disqus 差。在国内的话,多说加载比 Disqus 快,默认的社交分享也比较符合中国的国情。但是,有一颗折腾的心,没事多折腾折腾,其实也是挺好的啦!