最近由于学习需要,造了一个 AnkiImporter,希望实现一个功能:修改 Markdown 源文件,可以同步更新 Anki 中对应的 Note.
现在团队大致的协作流程:HackMD 书写文档->AnkiImporter 生成牌组-> 上传到牌组共享 Repo 中-> 成员导入牌组
AnkiImporter 目前主要解决了手动由文档制卡的过程,在未来可能还解决上传牌组的过程。
更理想的协作流程:HackMD 书写文档->Push 到对应的 Github Repo 中(HackMD 功能)-> 由本地 AnkiImporter 直接导入/更新牌组
目前的难点在于,更新文档后如何对原有的 Note 进行更新。因为很难从 Markdown 的一个段落块定位到唯一对应的 Anki Note.
补充背景:HackMD 支持 Pull/Push Github Repo,但只能对单个文件操作,不能批量 Pull/Push.
团队中有非技术人员。
大致有这么两个思路:
- 在每个导入的段落块后插入一个 ID,在 Anki Note Type 中加一个 Field 保存 ID.
这应该是最直接有效的方法,但是对源文档可读性会造成一定影响。Markdown 污染
而且需要加入一步,人工将加入了 ID 的文档再 Pull 到 HackMD 中,比较麻烦。 - 对整个 Markdown File 加一个 ID,同样储存在 Anki Note Type 的一个 Field 中,在添加、更新时以文档为单位,做一个 Fuzzy Match,看看每个 Markdown Block 对应可能性最高的 Note.
如果有关键 Field 相等,例如 Front 相等,可以直接判断了。由于更新幅度一般不大,因此这个方案也有一定的可行性。
缺点在于不那么可靠。
这两个方案都没有让我完全满意,来请教一下各位有没有更优雅的方法。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于