open-spaced-repetition / obsidian-spaced-repetition-recall

Fight the forgetting curve by reviewing flashcards & entire notes on Obsidian.md
https://www.stephenmwangi.com/obsidian-spaced-repetition/
MIT License
99 stars 6 forks source link

[FEAT] 在卡片底部增加标记信息 #52

Closed YIRU69 closed 2 months ago

YIRU69 commented 4 months ago

您好。

我从 tracked_files.json 文件中,以及结合使用的经验,发现如果我改动了一个卡片的行数,那么这个卡片就会被重置。

当我改动的卡片是位于卡片笔记的中间,那么这意味着我改动卡片的后面所有卡片的行数都被改动了。

最近我重新学习制作卡片的原则,我会根据这个卡片的记忆情况来修改卡片,如果是现在的模式,那么这意味着我改动卡片的行为有一定的风险。

我想是否可以增加卡片的标志信息来确保当我改动卡片的行数的时候,卡片识别信息不是通过行数,而是根据这个卡片信息,这其实是原来 SR 的功能,但我思考了很久,觉得这个还是很有必要的。

我知道如果要进行这个的改动,那么意味着我的数据都可能被更改,或者重新,但至少这样可以保证我的卡片有保证,不会因为行数的改变而丢失复习信息。

如果您有其他的想法,或者我思考的不对,请您指正。再次感谢您的付出!

YIRU69 commented 4 months ago

20 我发现原来在这里有讨论过,现在重新提出来。

确实增加 id 会在正文中添加信息,但是这种做法是必要的。如果想要自己的笔记干净,可以用 CSS 把它隐藏,如果要输出,也可以用正则,我想类似的插件,导出到 Anki 的插件以及 原 SR 插件都采用这个方法是有道理的。

我也明白作者考虑的点,毕竟可以有一个干净的文档是很好的。如果您有时间,可以兼容两者,在设置里面进行切换?保留原来 SR 中的文档标记和卡片标记?

YIRU69 commented 4 months ago

支持在文本块后添加id(效果就像uri插件在行后添加的uri ^id1234),会修改笔记内容;

可以和 原 SR 插件的形式吗,在文本的末尾增加标记或者有更好的方式,^id1234 的形式不好隐藏

dryezl commented 2 months ago

支持这个想法。 之前Newdea有说过,因为fsrs算法对应的信息较多,所以不像sm2那边方便存储到文本块后面。 我觉得可以只在文本块后面存储对应的卡片id,fsrs算法对应的信息仍然额外保存,通过id链接获得卡片记忆状态,进行排序复习。 至于之前的复习信息,可以考虑仅在没有id的文件块后面补上对应id,不对已有id进行覆盖。

Newdea commented 2 months ago

还有这个需求么, 目前这个方案只要不是同时修改卡片行号和内容,应该没有多少错误识别吧。 ps:: 修改后,需复习一次笔记或卡片,更新的数据才会保存(可能大家有时没有这个操作,才会把已经复习的当新卡片)。

如果要添加卡片标记id,在 #20 上讨论吧。