SiYuan 闪卡教程:3 步把笔记卡片同步到 Anki 复习
【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan
备考或背术语时,很多人把笔记写完,再手动逐条敲进 Anki,两边内容还经常对不上。SiYuan 闪卡功能可以把笔记块直接变成卡片,在应用内用 FSRS 算法复习,再同步一份到 Anki 供手机复习。全程只需三次操作:开开关、调参数、导出导入。
方案速览
| 环节 | 承担组件 | 做什么 |
|---|---|---|
| 制卡 | SiYuan 客户端 | 把标记、列表、标题等块转成卡片 |
| 调度 | SiYuan 内核(Go) | 用 FSRS 计算每卡下次复习时间,存为牌组 |
| 复习与多端同步 | Anki + AnkiConnect | 导入 CSV/apkg,跨设备继续间隔重复 |
SiYuan 是开源、自托管的知识工作空间,闪卡调度代码在内核中,参数默认值可以在 kernel/conf/flashcard.go 里对照查看。
第一步:开启 5 种制卡开关
目标:让笔记内容能被标记成卡片。
操作:打开 设置 → 闪卡,确认 5 个开关:
- 标记(Mark):选中文字后打标记制卡
- 列表块(List):列表项转卡片
- 超级块(SuperBlock):整块内容转卡片
- 标题块(Heading):标题及其下内容转卡片
- 卡包(Deck):按卡包组织复习
这 5 个开关的默认值都是开启,卡包默认关闭。
验证:在任意笔记里用标记快捷键划出一段文字,打开闪卡复习页能看到这张新卡。
第二步:调整 FSRS 记忆参数
目标:按自己的记忆节奏控制出卡量。
操作:同一设置页里还有几个数值:
- 新卡上限:默认 20,每天最多学多少张新卡
- 复习卡上限:默认 200,每天最多复习多少张
- 复习模式:新旧混合 / 新卡优先 / 旧卡优先
- 目标保留率(RequestRetention)与最大间隔(MaximumInterval):FSRS 的核心参数,保留率常见取值 0.85~0.95
默认值来自 go-fsrs 库 的内置参数,形如:
NewCardLimit: 20, // 每日新卡上限 ReviewCardLimit: 200, // 每日复习上限 RequestRetention: 0.9, // 目标记忆保留率 MaximumInterval: 365, // 最大复习间隔(天)验证:把新卡上限临时调成 5,当天复习页每天最多出现 5 张新卡,说明参数已生效。
第三步:导出牌组并导入 Anki
目标:让 SiYuan 里的卡片在 Anki 中继续复习。
操作:在闪卡复习页使用导出功能,把牌组导成 Anki 兼容文件(apkg);若需要精细控制字段,可先把笔记本导出为 Markdown,再整理成 CSV。字段对应关系如下:
| Anki 字段 | 来源 |
|---|---|
| Front | 卡片问题(块标记前半段) |
| Back | 卡片答案(块标记后半段) |
| Tags | 所在文档的标签 |
已有 Anki 在运行且装了 AnkiConnect 的话,可以用 4 行脚本批量导入:
# 通过 AnkiConnect 把整理好的 CSV 推入指定牌组 import requests requests.post("http://localhost:8765", json={ "action": "importText", "version": 6, "params": {"text": open("siyuan.csv").read(), "options": {"deckName": "SiYuan 笔记"}}})验证:Anki 里切到该牌组,卡片数量应与 SiYuan 牌组一致;复习一张卡后,间隔天数与 FSRS 结果相同。
排障:3 个高频问题
公式在 Anki 里显示为乱码
现象:卡片答案里的$$...$$公式变成纯文本或报错。原因:Anki 默认不渲染 Markdown 数学语法。解决:导出前把公式换成 Anki 支持的\(...\)形式,或在 Anki 中启用支持公式的笔记模板。
二次导入出现成倍重复卡
现象:CSV 导了两次,牌组卡片翻倍。原因:Anki 按字段全文去重,答案里混入时间戳就绕过了去重。解决:Front/Back 只保留正文,去掉生成时间;重复卡先全选删除再重导。
卡片里的图片在 Anki 里裂开
现象:SiYuan 里正常,导入后图片不显示。原因:Markdown 中图片是工作区相对路径,Anki 无法解析。解决:导出时勾选资源同步,或先按 docs/API.zh-CN.md 中的资源接口把图片转成 Anki 媒体引用。
收尾
整套流程的核心是:SiYuan 负责制卡与调度,Anki 负责多端复习,中间靠一次导出或一个短脚本衔接,日常维护成本接近零。想进一步自定义,可以对照 kernel/model/flashcard.go 了解牌组与到期时间的存储方式;功能迭代细节请查看仓库的 CHANGELOG.md 更新日志。
【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考