Skip to content

Flashcards

The five card types

CARD_TYPES = ("basic", "reversed", "cloze", "image", "type_in")

Type Behaviour
basic Front, back.
reversed Produces two independently scheduled rows — a front→back card and a back→front card. Knowing one direction is not knowing the other.
cloze Anki-style {{c1::answer::hint}}. One card per deletion number.
image The picture is the question — it sits on the front. For every other type a picture defaults to the answer side.
type_in The answer must be typed. Alternatives are separated by \|; the comparison ignores case, surrounding space and a trailing full stop.

The schedule is SM-2

Not FSRS. SM-2, chosen because everybody who has used Anki recognises the four buttons. Every review is logged with elapsed_days and scheduled_days — the shape FSRS would need if it is ever fitted — but no FSRS model is implemented.

The four buttons

Button Value Ease change Next interval
Again 1 −0.20 10 minutes, and the repetition count resets to 0
Hard 2 −0.15 interval × 1.2
Good 3 0.00 interval × ease
Easy 4 +0.15 interval × ease × 1.3

Ease starts at 2.5 and floors at 1.3. The first two successes use fixed steps of 1 day and 6 days before the ease factor takes over. The maximum interval is 365 days.

A card that has lapsed 8 times is marked a leech and pulled out of the normal rotation.

One departure from vanilla SM-2

Intervals are capped so that a card always resurfaces at least once inside the 14 days before the learner's exam date. A card scheduled six months out is of no use to somebody sitting an exam next fortnight.

Order within a run

Overdue first, then never-seen, then not-yet-due, then leeches last.

The daily queue

GET /flashcards/queue (/flashcards/study in the interface) pools everything due across every shared deck, then adds new cards up to 20 a day, drawing those new cards from the learner's weakest categories first.

Sharing a deck

FlashcardDeck.is_shared is the only visibility switch for studying: a learner may study a deck if it is shared, or if they are a moderator. There is no per-learner deck ACL — sharing is binary and site-wide once toggled.

A deck generated from an article starts unshared, so an educator reads it before anybody studies it.

Editing a deck is a different question entirely and is grant-based, not sharing-based. See Grants.