导入 anki 确实是个问题,一是资料整理问题,二是 markdown 格式在 anki 里的显示问题。看了这篇的介绍与 Anki 联动的最佳实践? ,觉得不错。
目前 obsidian 本身有个间隔重复的插件,obsidian-spaced-repetition
,可能后面会用到,但是觉得多端同步是个问题,还是导入 anki 比较好。
obsidian to anki 使用
- 正则表达式的区别,obsidian to anki 插件中的正则表达式是用来干啥的?
- obsidian 插件运行后导入了 anki,但是默认是扫描全部,默认也是会在相应的笔记里末尾生成一个 anki 的 id,这个 id 是用来做更新的,如果你删除了这个 id,目前来看就不能更新了。
obsidian 更新反应到 anki
理论上你在 obsidian 里更新了笔记,然后再次运行插件,会更新到 anki 里,但是我发现有时候更新不了,可能是我操作问题,但是我发现删除了 id 后就不能更新了,这个是个问题。
着重讲下这个 id,对于给予自定义的正则规则表达式可能效果不同,因为我用的这个正则 /^#+(.+)\n*((?:\n(?:^[^\n#].{0,2}$|^[^\n#].{3}(?<!<!--).*))+) \n?(?:<!--)?(?:ID: (\d+).*)/gm
,这个正则是用来匹配标题和内容的,但是我发现有时候匹配不到,重点来了,这个要求 id 前一行的末尾有个空格不然匹配不到,调试了源码也算是一整天感觉,还以为是个 bug,原来不是。
正则匹配不到的情形:
- id 前一行没有空格
- 如果没有 id 的情况下,最后一行的结尾也需要有一个空格
- 表格结尾的情况下,需要有一个空行而不是空格。可以用一个注释语句来表示一个空行,因为目前使用的正则还不能直接在内容内部使用空行,它会识别成新的 card,为了避免只能保持一个题的内容是一块没有空行的部分。
<!-- 表格结束 这里放置是因为表格需要空行才能匹配正则,不然无法正确显示表格--> \n <!-- 表格结束 -->
下面详细展示这个匹配过程:
let string = `## 正しい答えは一つだけです。二人だけで行きます。大きい部屋は一階にだけあります。彼だけ来ていません。わたしは聞くだけです。![[Pasted image 20240401211927.png]] |
输出结果如下:
sss (4) ['## 正しい答えは一つだけです。二人だけで行きます。大きい部屋は一階にだけあります。彼だけ来ていま…限定 |