前言
我现在使用 Anki 的同时也使用 Obsidian,正好可以通过插件来让这两个十分好用的软件实现联动。
在 Obsidian 中实现 Anki 的快速制卡。
准备
首先要在这两个软件中安装相应的插件。
- Anki 中安装 AnkiConnect
- Obsidian 中安装 Export to Anki(我这里放的是 Github 仓库的地址,安装还是要在 Obsidian 中安装)
如何安装这第三方插件请看:
双双启用
当安装完两个插件并且启用后,打开 anki,注意 anki 是一定要打开的。
遇到问题

开启后发现出现问题了,没法连接到 Anki。
查看是什么问题
这时候不要慌。
按下Ctrl + Shift + I 可以打开 Obsidian 的控制台,能够看到是什么问题。

这时候就可以看到问题,即便看不懂也没问题,复制问题到百度上搜索就行。
解决问题
这是一个跨域问题,可以通过代码进行更改,但这个问题插件开发者一定是知道的,肯定是有现成的解决方法的。所以我就打开插件商店好好看了看怎么安装的。

第六条就告诉我们怎么解决了。
根据开发者的步骤,再次打开 anki,对 AnkiConnect 这个插件进行设置,添加红框中的代码。
注意改完后要点击确定。

返回 Obsidian,再次启用 Export to Anki,可以看到左侧多了个小按钮,说明安装成功!

开始使用
插件的一些设置

这里先把 Obsidian 中的 anki 插件中的默认设置改一下,你可以专门整个文件夹存放用于制卡的 md 文件。然后就把这个文件夹写入到 Scan Directory,不然它会扫描整个仓库。
同理,如果你已经制过了某个 md 文件,以后也不会更改了,就可以放到另一个文件夹里面。Anki 制卡文件夹专门存放没有利用完的 md 文件。
Tag 与 Deck 根据自己需求设置,这个影响的是 Anki 中的 Deck 和 Tag。

然后点击 Actions 中的 Regenerate,这个会根据 anki 中的牌组进行添加,加载上方的 note type table 中。
牌组设置
两个插件都启用成功后,我们可以在 Anki 中看到插件自动创建的牌组,Default。

这个跟我的牌组风格不太一样,我是挺不舒服的,所以改一下设置,这个设置在 Obsidian 中进行更改。
打开 Obsidian 中的设置,左侧往下滑,可以看到 Export to Anki。

点击后在右侧可以进行一些设置上的更改,详细的内容请看Home · ObsidianToAnki/Obsidian_to_Anki Wiki (github.com)

在 Note Type Table 中设置每张卡片的具体设置。
可以添加正则表达式实现更快的制卡。
规则如下 Regex · ObsidianToAnki/Obsidian_to_Anki Wiki (github.com)。
Neuracache flashcard style · ObsidianToAnki/Obsidian_to_Anki Wiki (github.com) 其中这个规则最为简洁。只要使用 #flashcard 就能标记一个卡片。
当然你也可以自我定义。
Note Type Table 设置
习惯使用卡片类型去制卡,感觉能够更精细一些。
这里先要在 anki 中创建模板(在工具,管理笔记模板中),然后在 Obsidian 的插件中点击 generate。

接着打开 Note Type Table,添加 ((?:[^\n][\n]?)+) #lcard ?\n*((?:\n(?:^.{1,3}$|^.{4}(?<!<!--).*))+) 这个正则表达式。这样就能自动找到带 #lcard 标签的段落,然后制成诗词卡片了。

快速制卡
新建一个笔记,在开头加上 TARGET DECK 和 FILE TAGS,然后加上你的卡片的集合名以及卡片的标签。

在你想要制卡的位置加上 #lcard ,#lcard 同一行的就是正面,下面的就是反面,卡片之间要空行。这个是正则表达式定义的。
点击左侧的 Anki 图标,就能生成 ID。

然后我们就能看到 Anki 中生成的卡片。


这个标签和牌组名就是根据你的开头的 TARGET DECK 和 FILE TAGS 定义的。
Tags 的一些事项
有时候需要打上多个 tag,这时候我们可以在 Tags 下面写多个 tag,注意每个 tag 用空格隔开就行。

再点击生成,就会对应文件下生成的卡片就会有设置的两个 tag。

Obsidian 是插件设置的默认 tag,也可以不设置。