Skip to main content

A lightweight Markdown-to-Anki toolkit for exam review workflows.

Project description

Exam Cardforge

Exam Cardforge is a lightweight Markdown-to-Anki toolkit for exam review workflows.

It helps students and study groups keep notes readable in Markdown while exporting reusable flashcards for Anki. The first built-in templates target Chinese CS postgraduate entrance exam review, especially 408.

Project positioning

Exam Cardforge is designed for people who already write course notes, wrong-question notes, or review summaries in Markdown and want a low-friction path into spaced repetition.

The project focuses on:

  • human-readable Markdown syntax;
  • Anki-compatible CSV export;
  • exam-oriented note organization with tags, decks, and cloze cards;
  • small, dependency-light Python code that new contributors can understand.

This is not a question bank. It is a conversion and validation tool for notes that users own and maintain.

Why this project exists

Many students already write review notes in Markdown, but spaced-repetition tools usually need a more rigid card format. This project keeps notes readable while making them easy to export.

The project goal is practical and modest:

  • write notes in Markdown;
  • mark reusable question-answer blocks;
  • export Anki-compatible CSV;
  • keep the format simple enough for beginners to understand and contribute.

Install

From PyPI, after the package is published:

python -m pip install exam-cardforge

From GitHub:

python -m pip install "exam-cardforge @ git+https://github.com/Elysyrus/exam-cardforge.git"

Verify the command is available:

exam-cardforge --help

Install for local development

python -m venv .venv
.venv\Scripts\activate
python -m pip install -e . pytest

On macOS or Linux, activate the environment with:

source .venv/bin/activate

Quick start

Create a sample note:

exam-cardforge sample -o examples/408.md

Build an Anki CSV:

exam-cardforge build examples/408.md -o dist/408-anki.csv

Show tag statistics:

exam-cardforge stats examples/408.md

Check whether notes are valid and detect duplicate questions:

exam-cardforge lint examples/408.md

Card syntax

Write cards inside :::card blocks:

:::card tags=408,data-structure,stack
Q: 栈为什么适合检查括号匹配?
A: 因为括号匹配具有“后打开的先关闭”的特点,正好对应栈的后进先出。
:::

Decks can be attached with deck=:

:::card tags=408,os deck=408::OS
Q: 进程和程序的核心区别是什么?
A: 程序是静态代码,进程是程序在某次运行中的动态实体。
:::

Multi-line cards are supported:

:::card tags=408,os
Q:
进程和程序的核心区别是什么?
A:
程序是静态代码。
进程是程序在某次运行中的动态实体,拥有运行状态和资源。
:::

Cloze syntax

Use :::cloze blocks for Anki Cloze cards:

:::cloze tags=408,co,memory deck=408::ComputerOrganization
局部性原理包括{{c1::时间局部性}}和{{c2::空间局部性}}。
:::

The generated CSV includes Front, Back, Tags, Deck, and Note Type columns. In Anki, map Cloze rows to the Cloze note type.

Import into Anki

  1. Run exam-cardforge build.
  2. Open Anki.
  3. Choose File > Import.
  4. Select the generated CSV file.
  5. Map columns as Front, Back, and Tags.

Roadmap

See ROADMAP.md for the active maintenance plan.

Contributing

Bug reports, syntax suggestions, parser improvements, and documentation fixes are welcome. See CONTRIBUTING.md.

License

MIT

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

exam_cardforge-0.3.0.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exam_cardforge-0.3.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file exam_cardforge-0.3.0.tar.gz.

File metadata

  • Download URL: exam_cardforge-0.3.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for exam_cardforge-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e4ae91921203e6565b98e172c6810daee846a88e2fe7713e5824342f744ee413
MD5 86ee82879f0b3158a237f1fe4536fb1e
BLAKE2b-256 e277143699ffffeb7d8fb3e9911cbd0e30f18edfefaaf61dd48e2101be6fc732

See more details on using hashes here.

Provenance

The following attestation bundles were made for exam_cardforge-0.3.0.tar.gz:

Publisher: publish.yml on Elysyrus/exam-cardforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file exam_cardforge-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: exam_cardforge-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for exam_cardforge-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53232f8d11cd158661fc5cd3f8c00bd96731e4c3d4b31dbe156b72086c7b9ac7
MD5 afeef2ed20452ced6892a3b7a6ff4339
BLAKE2b-256 3bc1ecd13efc88d1226a847590eae0eacefa5bbda93b2f66024bced4f851c825

See more details on using hashes here.

Provenance

The following attestation bundles were made for exam_cardforge-0.3.0-py3-none-any.whl:

Publisher: publish.yml on Elysyrus/exam-cardforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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