[Feature Request] WebDAV 同步支持远端删除同步到本地生词本
Author: PipsqueakHCreated Sep 6, 2026Updated Sep 13, 2026
Labelsfeature request
功能建议:WebDAV 同步支持远端删除同步到本地生词本
使用场景
我目前使用 Saladict 收集生词,并通过 WebDAV(坚果云)同步生词本。
我的工作流大致是:
- 平时使用 Saladict 收集生词
- 通过 WebDAV 获取
Saladict/notebook.json - 使用 Python 脚本读取这些生词,并自动创建到 Mochi 等第三方记忆工具中
- 创建成功后,希望脚本从
notebook.json中删除已经处理过的生词 - 希望 Saladict 下一次 WebDAV 同步时,也自动删除这些本地生词
这样可以实现类似:
Saladict
↓
WebDAV
↓
外部脚本处理生词
↓
删除已处理词条
↓
WebDAV
↓
Saladict 自动同步删除目前的问题
我实际测试发现:
如果直接修改 WebDAV 上的 notebook.json:
- 新增词条可以同步到 Saladict
- 修改已有词条可以同步
- 但是如果从
words数组中删除一个词条,该词条似乎不会从 Saladict 本地生词本中删除
例如本地原本有:
[
{"date": 1, "text": "apple"},
{"date": 2, "text": "banana"},
{"date": 3, "text": "orange"}
]如果 WebDAV 中修改成:
[
{"date": 1, "text": "apple"},
{"date": 3, "text": "orange"}
]即使更新了 timestamp,Saladict 中的 banana 仍然存在。
从目前的行为来看,WebDAV 下载似乎更接近于:
新增 / 更新远端词条而不是:
让本地生词本与远端 notebook 完全一致希望增加的功能
希望 WebDAV 同步可以支持一种“完整同步 / 镜像同步”模式:
当远端
notebook.json的timestamp更新,并被判断为较新的版本时,本地生词本可以与远端words完全同步。
也就是说:
- 远端新增 → 本地新增
- 远端修改 → 本地修改
- 远端删除 → 本地删除
这样 WebDAV 就可以真正作为一个双向同步接口,而不仅仅用于合并词条。
建议
考虑到直接进行完整替换可能存在误删除风险,也许可以增加一个可选配置,例如:
WebDAV 同步模式
○ 合并模式(当前行为)
只新增 / 更新,不删除本地词条
○ 镜像模式
远端 notebook 较新时,使本地生词本与远端完全一致或者提供一种明确的删除记录机制,例如在 WebDAV 数据中保存 tombstone / deleted IDs:
{
"timestamp": 123456789,
"words": [...],
"deleted": [123, 456]
}这样可以实现真正的双向同步,同时减少完整覆盖带来的冲突风险。
为什么这个功能有价值
除了我的 Saladict → Mochi 自动化场景之外,这个功能也可以支持:
- 第三方脚本管理 Saladict 生词本
- 在其他设备或工具中删除已经处理过的单词
- 与 Anki / Mochi / 自建词汇系统进行自动同步
- 自动整理或归档生词
- 将 WebDAV 作为真正的跨设备同步源
这样 Saladict 的 WebDAV 功能也可以更方便地作为开放的自动化接口使用。
感谢考虑这个功能。
Source: crimx/ext-saladict