Emacs minor mode for making Anki cards with Org Mode
Find a file
2018-02-10 22:18:13 +08:00
anki-editor.el Optimize tag command 2018-02-10 22:18:13 +08:00
demo.gif Rework demo 2018-01-07 16:54:58 +08:00
examples.org Fix elements being joined together after replacing 2018-01-28 16:04:20 +08:00
README.org Optimize tag command 2018-02-10 22:18:13 +08:00

anki-editor Make Anki Cards in Org-mode

Installation

Requirements

  • anki-connect, an Anki add-on required by this package to interact with Anki.
  • curl

If you have MELPA in your package-archives, just M-x package-install RET anki-editor RET, or install it manually by downloading and visiting /elisp/anki-editor/src/commit/727084294823de00f1769d00bbeb92b009b2818e/anki-editor.el in your emacs buffer, and M-x package-install-from-buffer RET.

Usage

The Syntax

Now you can compose Anki notes in Org syntax, e.g. lists, code blocks, tables, latex fragments / environments, when being submitted to Anki, they will be converted to HTML by Org-mode's HTML backend with specific markers (e.g. latex) translated to the Anki style.

The structure of contents is as follow, which is inspired by org-drill. See examples.org for reference.

* English                                           :deck:
** Vocabulary
*** Item                                            :note:
    :PROPERTIES:
    :ANKI_NOTE_TYPE: Basic (and reversed card)
    :ANKI_TAGS: vocab idioms
    :END:
**** Front
     (it's) raining cats and dogs
**** Back
     it's raining very hard
  • Headings of deck are tagged with deck
  • Headings of note are tagged with note
  • Levels are not significant, but note headings must be descendents of their deck headings
  • Custom properties of a note heading can be used to specify note type and tags
  • Subheadings of a note heading are fields of its note type

Command Cheatsheet

Command Brief Description
anki-editor-submit Send notes in current buffer to Anki.
anki-editor-insert-deck Insert a deck heading.
anki-editor-insert-note Insert the skeleton of a note.
anki-editor-add-tags Add tags to property drawer of current heading with autocompletion.
anki-editor-cloze-region Cloze region.
anki-editor-export-heading-contents-to-html Export the contents of the heading at point to HTML.
anki-editor-convert-region-to-html Convert and replace region to HTML.

Note that anki-editor-submit will fail if the deck does not exist yet. New decks must be created in Anki first.

Since I'm not a native English speaker, let me know if there's any ambiguity or grammatical mistakes.

Demo

/elisp/anki-editor/media/commit/727084294823de00f1769d00bbeb92b009b2818e/demo.gif

Change Log

v0.2.0

  • Fix org-element not functioning correctly in temp buffer.
  • Add a command to cloze region.
  • Refactor the code to do the translation with Org's exporting framework.
  • Add a customization variable to break consecutive braces in latex.

v0.1.2

  • Make deck/note insertion commands smarter on choosing insertion point.
  • Fix latex environments being joined with the elements following it.