轻松将你的 Roam Research 笔记同步到 Anki 卡片

实现 Roam Research 到 Anki 的自动同步,让你的学习和知识管理更上一层楼。

轻松将你的 Roam Research 笔记同步到 Anki 卡片

在今天的数字化世界中,有效地管理和回顾信息是我们日常生活和工作的关键部分,许多工具可以帮助我们做到这一点,其中两个尤其引人注目: Roam Research 和 Anki 。

在这篇文章中,我们将详细介绍如何实现 Roam Research 到 Anki 的自动同步,让你的学习和知识管理更上一层楼。

dfaebaed62f29a9fe81a8aa30918a2ad_n91Tknrxqi

引言

Roam Research 是一个"卡片化思考"笔记应用,它允许用户以非线性的方式创建和链接他们的笔记。这种独特的方法使得 Roam 成为一个强大的工具,可以帮助你跟踪你的想法、研究和学习,使得信息和知识的管理更加有条理。 Roam 可以很好的和卡片笔记法结合使用。

Anki 则是一个基于间隔重复的学习工具,它使用科学证明的记忆技术来帮助用户记住和回顾信息。通过定期提示你需要复习的内容, Anki 可以帮助你更有效地学习和记忆。

为何要联用 Roam Research 和 Anki ?

选择联用这两个工具的主要原因在于,它们各自的优势可以相互补充:

  • Anki 本质上是一个 FlashCard 应用,更适合存储知识的精华部分,而不适合用来记录大量的工作和学习笔记。
  • Roam 则适合用来记录每天的想法、研究和学习,能创建大量的笔记,但缺乏有效的回顾和复习机制。

虽然 Roam Research 已经引入了 Delta (∆) 功能,但只能实现最基本的间隔提醒功能,在知识回顾和测验方面还远不如 Anki :

CleanShot 2023-07-29 at 17.41.15@2x

Roam 优秀的组织和链接功能,配合 Anki 强大的记忆和复习机制,可以极大地提高学习效率和知识吸收。

为何需要自动同步功能?

虽然两者结合起来效果很好,但我们每次在 Roam 中做完笔记,都需要手动在 Anki 中创建卡片,未免有点浪费时间。

如果我们能够将 Roam 的笔记(可选择特定笔记,而不是所有笔记)自动同步到 Anki 并创建 Anki 卡片,就可以使得复习和记忆变得无缝且高效。

在 Anki 中配置

在 Anki 中安装 AnkiConnect 插件

首先,我们需要在 Anki 中安装 AnkiConnect 插件。

AnkiConnect 官方地址: https://ankiweb.net/shared/info/2055492159

AnkiConnect 做作用是使外部应用程序能够通过简单的 HTTP API 与 Anki 进行通信。其功能包括对用户的卡片组执行查询、自动创建新卡片等等。这个插件将帮助我们在接下来的步骤中实现 Roam Research 笔记到 Anki 的同步。

在 Anki 中,点击工具 -> 插件 -> 获取插件,然后输入插件编号 2055492159

CleanShot 2023-07-29 at 19.49.31@2x

安装完成之后,必须重启 Anki 。重启 Anki 之后,重新打开插件页面,选择 AnkiConnect -> 插件设置,修改 webCorsOriginList 添加一行 https://roamresearch.com,这将允许来自 Roam Research 的请求:

CleanShot 2023-07-29 at 19.54.24@2x

自此,我们便完成了 AnkiConnect 插件的安装。

在浏览器中访问 localhost:8765,你应该可以看到以下响应,说明安装成功:

CleanShot 2023-07-29 at 20.27.16@2x

在 Anki 中创建新的笔记类型

我们还需要创建一个新的笔记类型( Note Type ),给它配置特定的字段,才能够正确的接收和展示从 Roam 同步过来的数据。

在 Anki 主界面,点击工具 -> 管理笔记模板 -> 添加 -> 选择最下面的 "复制: Cloze",新卡片名称设置为 ClozeRoam :

CleanShot 2023-07-29 at 20.03.04@2x

添加完成之后,选择新添加的 ClozeRoam 笔记类型 -> 字段:

CleanShot 2023-07-29 at 20.08.40@2x

删除 Back Extra 字段,然后添加 3 个新的字段: Metadata 、 Extra 、 Title

CleanShot 2023-07-29 at 20.12.42@2x

然后点击「卡片」,在正面内容模板和背面内容模板,分别输入以下内容:

正面内容模板:

<div class='roamtitle'>{{Title}}</div>
<div id="extra">{{Extra}}</div>
{{cloze:Text}}

背面内容模板:

<div class='roamtitle'>{{Title}}</div>
<div id="extra">{{Extra}}</div>
{{cloze:Text}}
CleanShot 2023-07-29 at 21.12.03@2x

最后保存即可。

在 Anki 中创建牌组

笔记类型创建完成之后,我们还需要创建一个牌组用于专门接收 Roam 通过过来的卡片。

新建一个牌组,命名为: Max Infinity

CleanShot 2023-07-29 at 20.53.32@2x

至此,我们在 Anki 中的配置就完成了。

在 Roam Research 中配置

在 Roam Research 中安装 Fabricius 插件

接下来,我们需要在 Roam Research 中安装 Fabricius 插件。

首先,点击 Roam Research 左侧的 Roam Depot ,搜索 Anki 或者 Fabricius ,应该能看到以下结果,点击 Install 进行安装:

CleanShot 2023-07-29 at 19.38.59@2x

因为数据从 Roam 到 Anki 的同步,是在本地完成,因此无需格外的配置。

在 Roam Research 中创建笔记并同步到 Anki

我们需要在 Roam Research 中使用预定义的【格式】和 【 Trigger 】 来触发 Fabricius 插件,毕竟,你也不会希望将 Roam 中的所有笔记都同步到 Anki 里吧?:laughing:

在 Roam Research 中的默认 Trigger 是 #[[srs/cloze-g]],如果我们在某一行添加#[[srs/cloze-g]],这一行会被作为标题。而这一行内部的每一个子行,都会被创建为一个卡片。在每一个子行里,第一行会被作为问题,其他行会被作为答案。

在答案部分,可以使用{c1:xxx}的格式来设置完形填空。

例如,如果我们创建这样一个笔记:

CleanShot 2023-07-29 at 21.46.36@2x

然后点击 Roam Researach 右脚上的 ∞,就可以将笔记同步到 Anki 中:

CleanShot 2023-07-29 at 22.11.49@2x

这将在 Anki 中创建两张卡片,卡片的形式如下:

CleanShot 2023-07-29 at 21.08.22@2x

也可以在一行笔记中创建多个完形填空,例如:

CleanShot 2023-07-29 at 22.27.59@2x

这将在 Anki 中创建两个卡片,分别对 c1 和 c2 部分创建填空。

Q&A

注意事项:

1.如果卡片不同步,可能是因为 Anki 在后台运行的时间太长了。将其切换到前台后再次尝试同步。

2.您无法在 Anki 中创建新笔记并将其同步到 Roam 。