Skip to main content

Command-line tool for adding flashcards from Markdown files to Anki

Project description

inka

Downloads PyPi Tests CI Code style: black Codecov

Automatically add your Markdown flashcards to Anki.

Installation

Install inka:

python3 -m pip install inka --upgrade

Requirements

Why

I've been using Anki for a long time, and at some point my notes turned into just lists of question/answer pairs, from which I then created Anki cards. The process of creating flashcards in Anki took a long time, so I decided to write a Python script to automate it. With more and more features added, the script has evolved into the command-line tool you can see now.

inka allows you to use full power of Markdown when creating flashcards. The program is also extensively tested.

Features

Usage

Creating Cards

In order for the program to be able to separate cards from all the rest of the text in the file, you need to enclose them between two ---:

---

Deck: Life Questions

Tags: learning life-questions

1. What is the answer to the Ultimate Question of Life, the Universe, and Everything?

> 42

2. If it {{c1::looks like a duck, swims like a duck, and quacks like a duck}}, then it is a {{c2::duck}}.

---

You can create any number of such sections in the file.

:warning: This means that you should avoid using the --- syntax anywhere else in the file for inka to work correctly. There are exceptions, and you can read about them in documentation.

Inside the section, you can specify the name of the deck to which the cards will be added, and tags for the cards. If deck name isn't specified, then the one from the config is used (Default by default). The deck name is written after Deck:, and tags for all cards after Tags: with spaces between each tag.

Two types of notes are supported:

  • Front/Back: every question starts with number followed by period (e.g. 1., 2. - Markdown ordered list syntax) and every line of the answer starts with > (Markdown quote syntax). Question and answer can span multiple lines.
  • Cloze: same as Front/Back notes, Cloze notes start with number followed by period (Markdown ordered list syntax). inka supports three versions of syntax for cloze deletions:
    • Anki syntax: {{c1::hidden text}}
    • Short explicit syntax: {1::hidden text} or {c1::hidden text}
    • Short implicit syntax: {hidden text}

More info and examples on the creating cards documentation page.

Adding Cards to Anki

inka will create custom note types for Front/Back and Cloze notes. If you want to use different ones, you can change note types in the config.

Add cards from the file:

inka collect path/to/cards.md

Or from all Markdown files in a directory:

inka collect path/to/directory

You can also pass multiple paths at once:

inka collect path/to/cards.md path/to/folder

You can find more information on the documentation page.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inka-2.2.3.tar.gz (45.3 kB view details)

Uploaded Source

Built Distribution

inka-2.2.3-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

Details for the file inka-2.2.3.tar.gz.

File metadata

  • Download URL: inka-2.2.3.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for inka-2.2.3.tar.gz
Algorithm Hash digest
SHA256 3d29564c486d190f3a3f0f807ea9a7dae48034f825cd0c83497f9f66019ce9fa
MD5 d1c0e568d5a9175e7444200cf6950be1
BLAKE2b-256 e2986719f47a186a9263c9c74fcd7763e5055f4dae101d7cedcf01b01c4ae9cb

See more details on using hashes here.

File details

Details for the file inka-2.2.3-py3-none-any.whl.

File metadata

  • Download URL: inka-2.2.3-py3-none-any.whl
  • Upload date:
  • Size: 40.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for inka-2.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a75d94ceff4001e65a1a17248bae63a2177738fec0de3af3857a9868c6020a8e
MD5 0dfd95312aa55da83e84ed52d84071b6
BLAKE2b-256 5187c042bd184c61d31dca9778f73754537c6c93ca6122798f35bc45f396080f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page