Apps Part of Deckwright

Flashcards from Markdown, CSV or Anki Text

Turn notes into flashcards: Q:/A: pairs, term :: definition lines, cloze gaps, CSV or Anki text.

Markdown: “Q:” and “A:” lines, “term :: definition” (“:::” also makes the reverse card), {{c1::cloze}} gaps, # headings as tags. Or CSV/TSV rows (front, back, tag), an Anki plain-text export, or a slide deck.

More options

Used for answer checks and fonts; empty = English.

Try an example: · ·

More about this tool

How it works

Reads study notes and makes flashcards with stable ids: Markdown “Q:”/“A:” pairs, “term :: definition” lines (“:::” adds the reverse card), {{c1::cloze}} gaps with optional hints (one card per gap number, like Anki), # headings as tags, CSV or tab-separated rows, an Anki “Notes in Plain Text” export (HTML turned into text) or a Deckwright slide deck (slide titles become questions). Returns the cards, a CSV file, the cards as editable Markdown and a link that opens them in Deckwright’s Study view.

  • Markdown: a line “Q:” starts a question, “A:” its answer (several lines; a blank line ends the card). “front :: back” lines make one card, “front ::: back” two (both directions). Paragraphs with {{cN::answer}} or {{cN::answer::hint}} make one cloze card per number N: that gap shows […] or [hint], the other gaps show their text. # headings tag the cards below them.
  • CSV and TSV follow RFC 4180 (quoted fields may hold commas, tabs and line breaks); a first row named front/back, question/answer or term/definition is a header, a third column or a column named tag becomes the tag. Anki text exports honour #separator, #html, #columns and the #notetype/#deck/#guid/#tags column headers; HTML line breaks are kept, bold and italic become Markdown, pictures become their file name.
  • A slide deck gives one card per content slide with a title: the title is the question, the slide text (lists, tables, quotes, chart and diagram descriptions) the answer; # section slides tag the cards after them; speaker notes stay out.
  • Card ids are “b-”, “r-” (reverse) or “cN-” (cloze) plus the FNV-1a hash of the question (of the full sentence for cloze cards), so editing an answer keeps the card’s review history; repeated questions get -2, -3 ….

Anki .apkg packages (SQLite) are not read; export the notes from Anki as “Notes in Plain Text” instead. Pictures inside an Anki text export cannot be carried over.

Sources

Part of Deckwright

Related tools

How to use Flashcards from Markdown, CSV or Anki Text

Turn study notes into flashcards with stable ids — Q:/A: pairs, term :: definition lines, cloze gaps, CSV rows, Anki text exports or the slides of a deck.

What it is for

You already have notes: a vocabulary list, a page of questions, a spreadsheet, cards from Anki or the slides of a lesson. This tool reads them and makes flashcards you can review, print or open in Deckwright’s Study view. Nothing has to be retyped.

It understands five sources. Markdown cards: a line Q: starts a question and A: its answer, term :: definition makes one card per line, term ::: definition makes two (one in each direction), and {{c1::answer}} turns a sentence into a cloze card. CSV and tab-separated rows with front, back and an optional tag. Anki’s “Notes in Plain Text” export, with its header lines and HTML. And a Deckwright slide deck, where every slide title becomes a question and the slide text its answer.

Worked example

The default input is the Spanish phrase list from the “Spanish for travel” template, with three # headings. It gives 13 cards: 8 basic, 3 reverse (from the three ::: lines such as hola ::: hello) and 2 cloze cards. The cloze sentence “Madrid’s main station is {{c1::Atocha}}; the fast train to Barcelona takes about {{c2::two and a half::how long?}} hours” makes two cards: one asks for Atocha with […], the other shows the hint as [how long?]. Every card carries its heading as a tag: Greetings, Getting around or At the café.

A biology note with one Q:/A: pair, nucleus :: holds the DNA, ribosome ::: makes proteins, a two-gap cloze sentence and one loose line gives 6 cards (3 basic, 1 reverse, 2 cloze) and the note “One line is not a card … and was left out”.

The lesson deck example (format “Deckwright slide deck”) gives 5 cards, one per content slide; the title slide and the speaker notes stay out.

How to read the result

  • Cards: number, kind (basic, reverse, cloze), question, answer, tag and the source line.
  • Id: b-, r- or c1-, c2- … plus a hash of the question. Editing an answer keeps the id, so your review history stays with the card; editing the question makes a new card.
  • Downloads: a CSV file (front, back, tag, id) and the cards as Markdown you can edit.
  • Open in Deckwright: the cards land in the Study view of a new revision deck, ready for the first review.

Tips and common mistakes

  • A blank line ends a Q:/A: card. Write multi-line answers without empty lines between them.
  • Use ::: only where both directions make sense: “hola ::: hello” yes, “photosynthesis ::: a long explanation” no.
  • Hints in cloze gaps ({{c1::Lisbon::city}}) help when a sentence has several possible answers.
  • From Anki, choose Export → Notes in Plain Text with “Include HTML” on; pictures are replaced by their file name, so add them again in Deckwright.
  • Spreadsheets: name the first row front and back (or question and answer) so it is not read as a card.

FAQ

Can I import an Anki .apkg file?

No. Packages are SQLite databases with media; export the notes as plain text instead. Cloze notes stay cloze cards.

Why does one sentence give two cards?

Each cloze number is a card. Use the same number twice ({{c1::…}} … {{c1::…}}) to hide both gaps on one card.

Are my notes stored?

No. The tool works on the text you send and returns the cards; the app link carries the cards inside the link itself.

Which languages work?

Any script. Answers keep their accents, and the printable cards embed fonts for Latin, Greek, Cyrillic, Arabic, Devanagari, Chinese, Japanese and Korean.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://deckwrightcardsfrommarkdown.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://deckwrightcardsfrommarkdown.usefulweb.site/mcp · tool name deckwright_cards_from_markdown
Example request
curl -s -X POST https://deckwrightcardsfrommarkdown.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"text":"# Greetings\nhola ::: hello\nbuenos días ::: good morning\ngracias ::: thank you\n\n# Getting around\nQ: How do you ask where the station is?\nA: ¿Dónde está la estación?\n\nla estación :: the station\nel billete :: the ticket\n\n# At the café\nun café con leche :: a coffee with milk\n\nQ: How do you ask for the bill?\nA: la cuenta, por favor\n\nMadrid's main station is {{c1::Atocha}}; the fast train to Barcelona takes about {{c2::two and a half::how long?}} hours.\n","lang":"es"}'
Feedback · ideas & bug reports welcome