[Feature Request] WebDAV 同步支持远端删除同步到本地生词本

Author: PipsqueakHCreated Sep 6, 2026Updated Sep 13, 2026
Labelsfeature request

功能建议:WebDAV 同步支持远端删除同步到本地生词本

使用场景

我目前使用 Saladict 收集生词,并通过 WebDAV(坚果云)同步生词本。

我的工作流大致是:

  1. 平时使用 Saladict 收集生词
  2. 通过 WebDAV 获取 Saladict/notebook.json
  3. 使用 Python 脚本读取这些生词,并自动创建到 Mochi 等第三方记忆工具中
  4. 创建成功后,希望脚本从 notebook.json 中删除已经处理过的生词
  5. 希望 Saladict 下一次 WebDAV 同步时,也自动删除这些本地生词

这样可以实现类似:

Saladict
   ↓
WebDAV
   ↓
外部脚本处理生词
   ↓
删除已处理词条
   ↓
WebDAV
   ↓
Saladict 自动同步删除

目前的问题

我实际测试发现:

如果直接修改 WebDAV 上的 notebook.json

  • 新增词条可以同步到 Saladict
  • 修改已有词条可以同步
  • 但是如果从 words 数组中删除一个词条,该词条似乎不会从 Saladict 本地生词本中删除

例如本地原本有:

json
[
  {"date": 1, "text": "apple"},
  {"date": 2, "text": "banana"},
  {"date": 3, "text": "orange"}
]

如果 WebDAV 中修改成:

json
[
  {"date": 1, "text": "apple"},
  {"date": 3, "text": "orange"}
]

即使更新了 timestamp,Saladict 中的 banana 仍然存在。

从目前的行为来看,WebDAV 下载似乎更接近于:

新增 / 更新远端词条

而不是:

让本地生词本与远端 notebook 完全一致

希望增加的功能

希望 WebDAV 同步可以支持一种“完整同步 / 镜像同步”模式:

当远端 notebook.jsontimestamp 更新,并被判断为较新的版本时,本地生词本可以与远端 words 完全同步。

也就是说:

  • 远端新增 → 本地新增
  • 远端修改 → 本地修改
  • 远端删除 → 本地删除

这样 WebDAV 就可以真正作为一个双向同步接口,而不仅仅用于合并词条。

建议

考虑到直接进行完整替换可能存在误删除风险,也许可以增加一个可选配置,例如:

WebDAV 同步模式

○ 合并模式(当前行为)
  只新增 / 更新,不删除本地词条

○ 镜像模式
  远端 notebook 较新时,使本地生词本与远端完全一致

或者提供一种明确的删除记录机制,例如在 WebDAV 数据中保存 tombstone / deleted IDs:

json
{
  "timestamp": 123456789,
  "words": [...],
  "deleted": [123, 456]
}

这样可以实现真正的双向同步,同时减少完整覆盖带来的冲突风险。

为什么这个功能有价值

除了我的 Saladict → Mochi 自动化场景之外,这个功能也可以支持:

  • 第三方脚本管理 Saladict 生词本
  • 在其他设备或工具中删除已经处理过的单词
  • 与 Anki / Mochi / 自建词汇系统进行自动同步
  • 自动整理或归档生词
  • 将 WebDAV 作为真正的跨设备同步源

这样 Saladict 的 WebDAV 功能也可以更方便地作为开放的自动化接口使用。

感谢考虑这个功能。