Typecho 评论导出至 Valine 插件

提醒:本文最后更新于 1256 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Featured Image

前几天我为了降低成本把博客迁移到了 Hugo,具体可见《博客迁移至 Hugo》。文章我基于前人的脚本自制了 Export2Hugo 插件进行导出,但是发现评论居然没有相关的同学折腾过。大部分都是使用了 ByeTypTypExport 插件将数据导出成 WordPress ,然后再通过 Disqus 桥接到 Valine,非常的麻烦。

Valine 使用的 LeanCloud 存储服务是支持文件导入的,于是我写了个 Node.js 脚本将 Typecho 数据导出成了支持导入的文件格式完成了导入。基于该脚本的逻辑我将其转成了 Typecho 插件 Export2Valine 方便大家迁移。

插件使用非常简单,启用插件后在左上角 控制台 菜单中会新增 评论导出 选项。点击后直接点击导出 LeanCloud JSON 文件按钮稍等片刻就可以拿到导出的 JSON 文件了。

在 Leancloud 后台新建应用后,选择 存储-导入导出-数据导入。Class 名称输入Comment,数据文件选择刚才导出的 JSON 文件。点击导入按钮即可等待导入成功。导入的时间会随着评论数的增加而增加,如果评论数比较多的请耐心等待提示。

这里需要注意两点:

  1. LeanCloud 应用中如果已经存在了 Comment 表的话需要删除,否则数据不会导入。

  2. 插件导出的评论对应的文章 URL 格式为 /{slug}.html,为了能让文章和评论数据正确映射,需要将你的文章设置成对应的格式才能正确显示评论。以 Hugo 为例,在 config.toml 中需要配置:

    uglyurls = true
    [permalinks]
      posts = ":slug"
    

下载地址:Github

Avatar
怡红公子 擅长前端和 Node.js 服务端方向。热爱开源时常在 Github 上活跃,也是博客爱好者,喜欢将所学内容总结成文章分享给他人。

3 评论

夏目贵志 Quark4.6 Android 10
2021-01-18 01:56:32 回复

能不能在导回TYPECHO🤣

我就是想导回来

怡红公子 Chrome87.0 Mac OS 10.15.6
2021-01-18 02:01:08 回复

@夏目贵志 , 目前没有这个功能,我觉得可以加,你可以试试。目前唯一的问题在于 Valine 中是通过 URL 关联文章,而 Typecho 是通过文章 ID 关联的。通过 URL 反算出文章 ID,且还需要适配各种 Typecho 的配置,这块会复杂一点。

夏目贵志 Chrome89.0 Windows 10
2021-04-24 08:30:41 回复

@怡红公子 , 是,太麻烦了 我刚才导出来,想导入回typecho json o(╥﹏╥)o