anki-helper: 快速、灵活的 Anki 制卡插件

最近新写了个在 Emacs 中制卡的包,个人觉得挺好用的,和大家分享一下。

仓库地址:GitHub - Elilif/emacs-anki-helper: Manage your Anki cards in Emacs.

Features (具体内容详见 为什么用 anki-helper

  1. 同步速度快

以仓库中的 headings.org 为例, org-anki 和 anki-helper 同步和删除所有卡片( 422张)的时间对比如下:

  |             | (benchmark 1 '(xxx-sync-all))     | (benchmark 1 '(xxx-delete-all))   |
  |-------------+-----------------------------------+-----------------------------------|
  | org-anki    | 123.855104s (35.423518s in 5 GCs) | 150.862886s (21.709634s in 8 GCs) |
  | anki-helper | 0.410945s                         | 0.098308s                         |
  1. 制卡灵活

anki-helper 可以自定义获取卡片对应字段内容的函数,而不仅仅局限于 entry ,理论上支持任何形式的文本和任何自定义的卡片类型。

  1. 支持多媒体内容

anki-helper 会自动将链接形式的媒体文件复制到 Anki 的媒体目录下

  1. 不会破坏原始内容

对于 Cloze 类型的卡片来说,常规的做法是使用 {{cn:xxx}} 这种形式,但是这会破坏原有内容,不利于其他操作。这其实是一种变相的专有化。

Anki-helper 使用 org-mode 内置的富文本标记来作为完形填空的标志,假设有以下文本:

*Canberra* was founded in *1913*.

在制卡的过程中,它会变成如下格式:

{{c1::Canberra}} was founded in {{c2::1913}}.

我认为这样是符合直觉的,因为你强调的部分往往是你想要记住的部分。

  1. misc

Anki-helper 提供一些有用的函数和 API 来帮助您自定义制卡

5.1 交互式制卡

Peek 2023-09-11 08-10

5.2 双向跳转

notes-with-backlink

20 个赞

改天试试看。

在 reddit 上看到了一个inine-anki ,我也分享一下我的方案:

为了尽可能的不修改原文,我选择用 text proerties 来储存 inline notes 的信息,用 overlay 来分隔 inline notes ,在关闭文件的时候保存这些信息,打开文件的时候再恢复。

在下面的 GIF 中分别演示了四种操作:

  1. 创建新的 inline notes
  2. 重新打开文件后的恢复 inline notes 的显示
  3. 更新 inlines notes
  4. 删除 inline notes

Peek 2023-10-24 22-02

2 个赞

我有个需求,就是只希望导出 properties 中有 ID 的 entry 到 Anki。

*** 1
:PROPERTIES:
:NOTER_PAGE: (24 0.2508670520231214 . 0.1464646464646465)
:ID:       5FFB1B29-66D5-4294-887F-F6D4E222D401
:END:
...
** 2
:PROPERTIES:
:NOTER_PAGE: (24 0.4832369942196532 . 0.17003367003367004)
:END:

...

我只想导出 1,不要 2.

包的源码我看了一圈,不知道从哪里 hack。

可以自定义 anki-helper-skip-function ,比如说您的需求,可以这样实现:

(defun my/anki-helper-skip ()
  "Skip headlines without \"ID\" property."
  (unless (org-entry-get nil "ID")
    (point)))

(setq anki-helper-skip-function #'my/anki-helper-skip)

你好,请下下这个有办法支持多行 front 吗, 比如记一些题目的时候,题干会有多行,也可能会有图片