从 Isso 迁移到 Waline
之前很长一段时间都是使用 Isso 作为评论系统,最近发现了一个 Valine 的替代品:Waline,更加符合需求,花了一个周末迁移了一下,写了个脚本,记录一下。
先说下 Waline 的特性,也是比较吸引我的点:
- 支持 Markdown、表情、公式
- 支持内容校验、防灌水
- 允许匿名、也支持登录
- 可以完全自托管独立部署
- 支持浏览量统计
- 多种通知方式
不过还有两个问题目前没有已经搞定:
1、首页显示评论数的字样是 Waline: 10
想修改为 评论数: 10
,解决方案是创建 source/_data/languages.yml
文件,内容为:
1 | zh-CN: |
2、在 Next 主题下,会连发两个请求,导致数据库重复,提 Issue 之后作者修复了!
部署配置
部署过程不赘述,官方文档很清晰,我采用 docker 部署,SQLite 数据库。不过官方文档中没找到如何对接 Next 主题,从 Github 仓库中找到描述,详见这里。
此外有些东西文档里没有说,研究之后发现的,关于暗黑模式,因为我已经在 Next v8 主题中开启了,这里只需要在 waline:
配置下加上 dark: "auto"
即可,其他参数介绍可见 这篇文档。
部署完成之后也不需要使用基于 leancloud 的浏览量统计插件了!
从 Isso 迁移
代码和说明见 https://github.com/zhangnew/isso_to_waline,脚本用于从 Isso 的 SQLite 数据读取评论,生成 Waline 需要的 json 格式。
脚本开头有些配置项,根据自己需要修改即可。
Waline 导入会覆盖所有数据,所以一定要先导出,并做好备份!!!
限制
isso 只支持二级回复,所以导出评论中的二级回复,回复@的都是一级回复的人(也就是层主)
如果需要完善,可以手动修改数据库 wl_Comment 表,修改点有 2 个字段、三处:
- comment 字段:@ 后面的内容
- comment 字段:# 后面的内容
- pid 字段,值同上
对应的都改成回复的真实对象。如果评论很多,改起来还是比较麻烦的,不过有这个需求的人应该很少吧,欢迎 PR~
如有其他问题可以提 Issue 或者本文下面评论区见~
更新
来自 Waline 开发者在 Issue 提供的方案,直接导数据库,看起来更方便,未测试:
1 | CREATE TABLE "wl_Comment" ( |