PKMer_Obsidian 插件:用 Obsidian 进行 Anki 制卡

Anki 和 Obsidian 都是收到大家欢迎的软件,两者联动需要依靠一些技巧和配置,对于不太软件熟悉操作的同学,上手具有一定难度,希望这篇文章能帮到你。

注 1:以上插件的安装及配置过程略(可搜索 PKMer 社区,或去知乎、B 站上找下教程)


这是一个从 https://pkmer.cn/pkmer-docs/10-obsidian/obsidian%e7%a4%be%e5%8c%ba%e6%8f%92%e4%bb%b6/obsidian-to-anki-plugin 下的原始话题分离的讨论话题
1 个赞

大佬,如果卡片正面不是md的标题怎么办,如果题目是纯文本的形式,用这个正则:^题目\n*(【\s\S】?)\nEND$,输出的卡片END前面的内容都在正面了,背面没有内容
但是把md标题设置为卡片正门的时候就不会出现这个问题,^#{2,}(.+)\n
([\s\S]*?)\nEND$ ,用这个表达式就只会把标题那一行设置为卡片正面。
不知道在正则表达式里正面和背面是用什么分割的。

感谢博主的main.js脚本,终于能够在Obsidian中进行标签的设定了

同时关于标签的问题,还有以下说明,希望能帮助到小伙伴

关键字Tags:可以指定Ob导入到Anki库时的卡片的标签

但是需要注意,关键字 Tags: 必须放到文本块的最后一行,并且不能是单独的一行(经过测试,Tags: 前面起码要有3个字符)

举例,我的转卡是以@@作为正背面分割标志,那么有效的转标签方式是:

正面的问题:Question
@@
背面的回答:Answer
xxx Tags: 标签1 标签2

前面至少三个字符,再隔一个空格,在Anki中就能对卡片打上标签,并且这种方式可以随意修改、增添新的标签

相比之下,如果在Obsidian中采用 #标签 的方式,如果修改标签,就会造成同步Anki卡片时,该卡片的标签丢失

甚至为了美观,可以在最后一行的开头加入一个换行符<br>来与卡片主体内容分割

1 个赞

关于标签,该插件还有一些Bug大家注意避免

如果要修改标签,则尽可能采用Anki已存在的标签

对于已生成ID的卡片,如果在Obsidian中直接修改标签为 Anki库没有的标签,虽然插件可以帮助在Anki库中生成,但是 会造成第一张使用新标签的卡片 在Anki库中的标签数据丢失

解决的方式也很简单,就是当库中新增第二张卡片采用新标签的卡片时候,并同时修改第一张卡片的一些内容(与过去稍有不同),插件就能重新同步第一张卡片的标签了(我想这可能和插件的缓存对比信息有关)

总而言之,如果需要修改标签,还是尽可能采用Anki库中已存在的标签(或者先去Anki库创建该标签)。

举例

当下我在Obsidian中有卡片信息2张,如下(我还是用@@作为分割标志)

Question-1:blabla
@@
Answer-1:blabla
--End-- Tags: 标签1

Question-2:blabla
@@
Answer-2:blabla
--End-- Tags: 标签1

将这2张卡片分别称为卡片1卡片2,并且已经导入到Anki库中生成了对应的ID

此时我想修改2张卡的标签从 标签1 变为 标签2(未在Anki库中存在),那么如果我直接修改文本的内容如下,会导致 卡片1 在Anki库中的标签信息全部丢失(卡片2的标签更新则不受影响)

Question-1:blabla
@@
Answer-1:blabla
--End-- Tags: 标签2

Question-2:blabla
@@
Answer-2:blabla
--End-- Tags: 标签2

此时无论再怎么修改卡片1的标签信息,Anki库中卡片1的标签栏都会为空,不会自动更新。

解决方法是在Anki库已存在第二张采用新标签2的卡片后(本例子中的卡片2),再稍微修改一下卡片1的主体内容(与过去稍微有些不同),再进行Anki库的同步,则能解决标签更新问题

希望我的说明足够清晰~~

1 个赞

请问从 anki 中能够跳转到 ob 中的 md 文件,但不能跳转到具体制卡的位置,怎么破?

[GitHub - TrillStones/obsidian-image-occlusion](javascript:void(0):wink: An Excalidraw script for creating Anki image occlusion cards in Obsidian, similar to Anki’s Image Occlusion Enhanced add-on but integrated into your Obsidian workflow.