DecksMD

Flashcards for language learning

Vocabulary is the one case where a table really is the right data structure. DecksMD reads it directly, drills it in both directions, and reads it aloud.

Most flashcard tools ask you to type vocabulary into a form, one field at a time. If you keep a vocabulary list at all, you almost certainly keep it as a table — which is already the right shape. DecksMD just reads it.

A table is a deck

Put a two-column table under a heading and every row is a card. First column front, second column back, header row ignored.

---
tags: [decks]
---
## Kitchen
| Spanish | English |
| --- | --- |
| la nevera | the fridge |
| el fregadero | the sink |
| la sartén | the frying pan |

That is the whole authoring step. Add a row tomorrow and there is a new card tomorrow. A third column becomes notes shown with the answer — a good place for gender, a mnemonic, or an example sentence.

Full detail in Tables.

Both directions, scheduled separately

Recognising la nevera and producing it from the fridge are genuinely different skills, and one is usually much further ahead than the other.

Set reverse: true in the note’s frontmatter and each row becomes two cards, scheduled independently. FSRS then does the obvious right thing: the direction you find easy drifts out to long intervals while the hard direction keeps coming back. Treating them as one card averages away exactly the information you need.

See Title, reverse & tags.

Hearing it

Read aloud speaks the prompt using your device’s built-in text-to-speech, with the voice and speed set per profile — so your Japanese deck can use a Japanese voice while your German deck uses a German one.

Two things worth knowing: it runs on the device’s own speech engine, so it works offline and costs nothing. And it is cloze-aware — it reads a blank rather than helpfully announcing the answer you are trying to recall.

Scripts, furigana and gender

Plain front-and-back runs out quickly once a language needs more than two fields. A Japanese card wants the term, the reading and the meaning; a German noun wants its article visibly attached.

Card templates handle this. A template is an HTML or markdown design with {{Column}} placeholders, bound to a table by tag. Put the reading in its own column and wrap it in a <ruby> tag and you get proper furigana above the kanji. Colour der, die and das differently and gender becomes something you see rather than something you memorise separately.

Templates render in a sanitised, theme-aware sandbox and expose CSS variables for padding, alignment and background, so they follow your Obsidian theme rather than fighting it.

Cloze for grammar

Vocabulary is only half of it. Grammar is better drilled in context, and that is what cloze is for: write the sentence you actually want to be able to produce and ==highlight== the part that carries the grammar.

Ich ==habe== gestern einen Film ==gesehen==.

Two blanks in one sentence, and you can choose whether the other blanks stay hidden or show — which is the difference between drilling one form and drilling the whole construction.

Keeping it organised

  • Per-tag profiles mean each language gets its own daily limits, retention target and read-aloud voice.
  • Filter decks build live decks from a tag — every card tagged #verbs, wherever it lives.
  • Per-card tags let you tag a single row rather than a whole file, so one table can feed several filter decks.

Sentences from real material

If you learn from articles or subtitles rather than lists, AI generation can pull cards from a passage you paste in, and PDF ingestion handles a textbook chapter. Both stream cards into an inbox where you keep the ones worth keeping — nothing is added to a deck without you saying so.

Or start with what FSRS actually is, or how DecksMD compares with Anki and the Spaced Repetition plugin.

Common questions

How do I make a vocabulary deck?

Write a two-column markdown table under a heading. Every row becomes a card — the first column is the front, the second is the back, and the header row is ignored. A third column adds notes shown alongside the answer.

Can I drill both directions?

Yes. Set reverse: true in a note's frontmatter and each card is created in both directions, scheduled independently. Recognising a word and producing it are different skills, and FSRS treats them as different cards.

Does it read the words out loud?

Yes. Read aloud uses your device's built-in text-to-speech with a voice and speed set per profile, so it works offline. It is cloze-aware, reading a blank rather than announcing the answer.

Can I show furigana or gendered articles?

Yes, with card templates. A template is an HTML or markdown design with {{Column}} placeholders bound to a table by tag — for example wrapping a Japanese term in a ruby tag for furigana, or colouring der/die/das.

Try DecksMD

Free and open source. Install from Obsidian's Community Plugins, tag a note you have already written, and review it a minute later.