闪卡

概述

将内容块设置为闪卡后会自动通过间隔重复算法 FSRS (github repo: open-spaced-repetition/free-spaced-repetition-scheduler) 安排复习。

使用方式

内容块

在开始正式制卡之前,我们先介绍一些制卡的基本规则:
内容块中的 标记 元素会被视作挖空的答案
如果将超级块设置为闪卡,则该超级块的第一个子块会被视作问题,其余子块会被视作答案
如果将列表或者列表项设置为闪卡,则非子列表会被视问题,子列表会被视作答案
如果将标题块设置为闪卡,则该标题块会被视作问题,其下方块会被视作答案
以上规则可以在 设置​ - 闪卡​ 中调整。

基于文档

基于文档的使用方式可以不必关注卡包,并且支持父子文档复习。
在块标菜单中选择 快速制卡​ 完成制卡
在文档树面板中右击文档或者在编辑器中点击文档块标 闪卡​ 进入复习

基于卡包

基于卡包的使用方式可以将不同文档中的内容块制卡后放到统一的卡包中复习。
在块标菜单中选择 添加到卡包...​​,然后将该内容块添加到一个卡包中完成制卡
通过点击顶栏菜单中的 闪卡​​ 进入复习
该使用方式默认关闭,如果需要可以在 设置​ - 闪卡​ - 卡包​ 中开启。但建议不要基于卡包使用闪卡,因为卡包是固定的,没有基于文档使用闪卡灵活。

设置

设置​ - 闪卡​ 中可以调整闪卡相关的全局配置,其中 新卡上限​ 和 旧卡上限​ 可以使用文档块自定义属性进行覆盖:
riff-new-card-limit
riff-review-card-limit
不同文档上单独配置,相互独立不影响,比如父文档上配置为 5,子文档为 10,那么从父文档复习的时候就是 5,不会叠加子文档的配置。

注意

内容块被删除(或者 ID 改变)后对应的闪卡会失效
不建议启用卡包,该方式已经弃用,继续使用可能会遇到无法解决的问题

技术实现

卡包数据通过 MessagePack 序列化协议存储在 工作空间/data/storage/riff/​ 文件夹下
启动时加载所有卡包数据到内存,数据同步下载后重新加载一次