前言
我有一个朋友最近需要记忆一些知识点,想找一个题库软件,最好是能自定义题库。可市面上的题库要么题不全,要么收费贵。有没有一个工具可以自定义题库,且按照记忆曲线提供定期记忆回顾功能呢。所幸还真有这么一款开源软件,anki。
本文记录 anki 简介,obsidian anki 联动管理卡组及异常情况处理过程。
Anki 简介
Anki是一款免费且开源的闪卡(Flashcard)制作与学习软件,它支持多种平台,包括Windows、Mac OS 、Linux以及Android移动设备等。Anki的主要功能是帮助用户通过创建数字闪卡来学习各种类型的知识点,并利用间隔重复(Spaced Repetition)的原理优化复习计划,从而提高记忆效率。
相关地址
官网: https://apps.ankiweb.net/
Ankichina: http://www.ankichina.net/welcome/
软件直接官网下载,ankichina 可以帮我们初步了解 anki,有网友分享的卡组。
Obsidian anki 管理卡组
Anki 卡组类型包括问答题(包括单向和双向)、填空题等多种形式,直接通过 anki 新建卡片比较麻烦, anki 也有通过 csc、apkg 等方式批量导入卡组的方式。
但为了更好的管理卡组,并与笔记结合,今天介绍 Obsidian anki 联动管理卡组的方式。
工具准备
- obsidian、anki
- Anki 插件:anki connector
- Obsidian 插件:Export to Anki
Anki connector 插件安装方式
打开 anki -工具-插件-输入代码 2055492159
Export to Anki 安装方式
应用商店中安装 Export to Anki (安装后为 obsidian to anki)
初始配置
在 Anki 插件界面双击 Anki connector 复制粘贴下面代码。
{
"apiKey": null,
"apiLogPath": null,
"webBindAddress": "127.0.0.1",
"webBindPort": 8765,
"webCorsOrigin": "http://localhost",
"webCorsOriginList": [
"http://localhost",
"app://obsidian.md"
]
}
重启 anki ,如果报端口请看异常处理记录,没有报错就在 anki 运行的情况下,重启 obsidian Export to Anki 插件,会多出来设置按钮,如果没有成功连接 anki 是没有设置按钮的。
obsidian to anki设置信息
先看设置信息截图如下:
忽略文件
忽略其他文件及文件夹,这样可以避免程序进行不必要的扫描,忽略文件夹格式为文件名后加/**
注意原文有的去掉 excalidraw 要保留。
**/*.excalidraw.md
00_collection box/**
01_工作/**
02_学习/**
03_生活/**
Anki 添加笔记模板
Anki -浏览-笔记模版右键-管理笔记模版-添加-问答题。
Obsidian to anki 笔记模板设置
依次点击Actions- Regenerate Note Type Table-Regenerate,获取笔记模板。
这样在 note type settings 下就有了 note type table
添加正则表达式
在官方 wiki 界面下找到问答式正则表达式代码复制到对应的 custom regexp。
^Q: ((?:.+\n)*)\n*A: (.+(?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))*)
正则表达式解释:Q: 后面是问题,换行后 A: 为答案。
正则表达式可自定义,例如下面的表达式,可用于知识点的梳理。
^#{4}\s(.+)\n*((?:\n(?:^[^\n#].{0,2}$|^[^\n#].{3}(?<!<!--).*))+)
4 级标题为问题,4 级标题以下为答案,具体如何设置根据自己的需要来定。
以上就完成了初步配置。
只要在 obsidian 没有被忽略的笔记中添加对应格式笔记,点击左侧按钮就能同步到 anki Default 卡组中。笔记格式示例如下:
Q: How do you use this style?
A: Just like this.
成功后,在 obsidian 对应的笔记后面会多一个标记
在 anki 中会增加卡片。
obsidian 管理 anki 卡组
使用 Obsidian to anki 插件不仅可以批量添加卡片,还可以实现指定目标卡组,删除卡片,修改卡片内容。
指定目标卡组
在 anki 牌组界面下,点击创建自己的卡组,在 obsidian 笔记前添加 TARGET DECK 字段设置目标卡组。
TARGET DECK: obsidian
Q: How do you use this style?
A: Just like this.
<!--ID: 1724248298307-->
删除卡片
在特殊标记前添加 DELETE 命令。
设置标签
在笔记后添加 FILE TAGS 字段,可添加标签
Q: How is this possible?
A: The 'magic' of regular expressions!
<!--ID: 1724247826177-->
FILE TAGS: 测试 错题
以上 TARGET DECK 、DELETE、FILE TAGS 均是设置中默认的,可以在设置中对应修改。
美化卡片
Anki 和 obsidian 一样支持 markdown 格式, 还支持 HTML,css 可以做出非常美观的卡片。
在浏览界面,点击右侧设置图标修改卡片样式 CSS 代码。将实现对笔记输出格式的美化。
.card {
font-family: arial;
font-size: 20px;
text-align: left;
color: black;
background-color: white;
}
em {
#color:white;
background-color: #69E147;
border-radius: 5px;
padding: 2px 5px;
}
strong {
color:red;
font-weight: bolder;
text-shadow: 2px 2px 5px #ffe600;
}
code {
color:black;
font-weight: bolder;
text-shadow: 2px 2px 5px gray;
}
mark {
border-radius: 5px;
padding: 2px 5px;
}
blockquote {
background-color: #ECECEC;
padding: 2px 5px;
border: 2px solid #7F7F7F;
border-radius: 5px;
}
Obsidian 笔记
Q: 卡片支持哪些美化功能?
A: 1. **加粗**:关键词
2. _斜体_:用于句首,可以理解为卡片的结构化写法
3. ==高亮==:简记的形式——记忆法的延伸
4. 内容断行:先回车,然后“**空一格**”,然后再回车,这样就可以在卡片中进行内容的分隔(这个没有什么特别的说法,单纯是因为插件代码就是这么写的)。
> “人生就是一连串的刹那”
> ——《被讨厌的勇气》
结果预览:
Anki web 卡组同步
做好牌组后,可通过Anki web 能帮我们实现多端同步。点击anki 的同步按钮即可注册、登录账户,安卓端推荐ankichina 下载ankidroid,注意软件是免费的。
端口占用处理记录
问题原因是有程序占用 8765 端口,两插件不支持修改默认端口,只能杀掉本地运行的端口程序。
Cmd 输入代码查询占用程序 netstat -ano | findstr : 8765。
C:\Users\htwl>netstat -ano | findstr :8765
TCP 0.0.0.0:8765 0.0.0.0:0 LISTENING 19060
TCP 127.0.0.1:8765 127.0.0.1:63689 ESTABLISHED 19060
TCP 127.0.0.1:63689 127.0.0.1:8765 ESTABLISHED 14868
- 关闭对应程序。
taskkill /F /PID 19060
taskkill /F /PID 14868
参考文件
用obsidian进行anki作卡 - 知乎 (zhihu.com)
Bilibili@pkmer :同步 Anki 学习卡,让你的学习更高效
Home · ObsidianToAnki/Obsidian_to_Anki Wiki · GitHub
Regex · ObsidianToAnki/Obsidian_to_Anki Wiki · GitHub
BY
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客: https://maoyu92.github.io/