Typecho 评论导出至 Valine 插件

2020-11-01
2分钟阅读时长

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

Featured Image

前几天我为了降低成本把博客迁移到了 Hugo,具体可见《博客迁移至 Hugo》。文章我基于前人的脚本自制了 Export2Hugo 插件进行导出,但是发现评论居然没有相关的同学折腾过。大部分都是使用了 ByeTyp 和 TypExport 插件将数据导出成 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-17 17:56:32 回复

能不能在导回TYPECHO🤣

我就是想导回来

怡红公子 Chrome87.0 macOS 10.15.6
2021-01-17 18:01:08 回复

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

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

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