Canvas decks
Author cards on an Obsidian Canvas (.canvas) instead of a markdown file. Each canvas in the configured folder becomes one deck; each text node inside it is parsed for the same four card formats — header + paragraph, table, cloze, and image occlusion.
One text node can hold a whole table of cards, a single cloze sentence, or one header + paragraph. Mix them freely across the canvas.
Setting it up
Section titled “Setting it up”Open Settings → Canvas decks:
- Canvas decks folder — every
.canvasfile inside this folder becomes a deck. Subfolders are included. Leaving it empty disables canvas scanning entirely. - Canvas deck tag — applied to all canvas decks for grouping in the Tags view and for profile mapping. Defaults to
#decks/canvas(which uses the Default profile unless you map it elsewhere).
Drop a .canvas file in that folder and refresh the deck panel; it appears as a new deck.
A Decks — Canvas getting started.canvas file is auto-created in a Canvas decks/ folder on first install (or first upgrade) to show the formats in action. You can recreate it any time with the Create canvas test deck command. Delete it and it stays deleted — nothing recreates or overwrites it.
What a text node can hold
Section titled “What a text node can hold”Each text node is parsed on its own, so a single canvas can mix formats freely:
- Header + paragraph —
## Questionfollowed by the body. - Tables — a two- or three-column markdown table.
- Cloze —
==highlight==in any body or table row, if cloze is enabled on the deck’s profile. - Image occlusion — an image embed followed by a numbered list.
Because each node is parsed separately, two nodes on the same canvas can carry identical front text without colliding — they stay two distinct cards.
Spatial cards
Section titled “Spatial cards”Beyond parsing nodes, you can author cards by drawing edges between them. Each edge becomes a card:
- the from-node is the question,
- the to-node is the answer,
- the edge label is an optional hint, shown as a small italic chip above the front during review.
Front
Back
Glucose
Notes
Hint from the edge label: produces
Front and back are taken as written — no heading parsing, so whatever is in the from-node is the question. Any #tag in the from-node is stripped from the front and stored on the card, just as with per-card tags.
The shapes that work
Section titled “The shapes that work”- One-to-many — A→B and A→C give two cards with the same front and different backs.
- Many-to-one — A→C and B→C give two cards with different fronts and the same back.
- Chains — A→B→C gives two cards, A→B and B→C.
- Cycles and self-loops are allowed; every edge produces a card.
If the to-node contains ==highlights== and cloze is enabled, the edge expands into one cloze card per highlight, each keeping the same hint and tags.
Connected and standalone nodes
Section titled “Connected and standalone nodes”A node that takes part in at least one edge is treated as a spatial endpoint and is not also parsed for the four standard formats. Nodes with no edges fall through to normal parsing.
That distinction is worth remembering: adding one edge to a node that previously held a table changes how that node is read.
Only text-to-text edges count. Edges touching a file, link or group node are ignored, as are those nodes themselves.
Identity
Section titled “Identity”A spatial card’s identity comes from the canvas edge. Moving nodes around, relabelling the edge, or rewriting either node’s text all preserve the card and its review history — see Card IDs & history.
Reverse cards do not apply to spatial cards. Edges are directional by design.
Behaves like any other deck
Section titled “Behaves like any other deck”Canvas decks appear in the deck list and, under the canvas tag, in the Tags view. Reviewing, ratings, sessions, daily limits and statistics all work exactly as they do for markdown decks.
Go to source opens the canvas and zooms to the text node the card came from. On an Obsidian build that doesn’t accept the focus call the canvas still opens, just without the jump.
Editing from the flashcard manager writes back into the canvas: it finds the right text node and rewrites just that card’s markdown — the heading, table row, cloze sentence or occlusion item. Other nodes and every node position are preserved.
Custom and filter decks work unchanged. A filter of deckTag = #decks/canvas scopes a deck to canvas cards only, and individual canvas cards can be added to a manual deck like any other.
Worth knowing
Section titled “Worth knowing”- Canvas files have no frontmatter, so
reverse: truecannot be set on a canvas the way it can on a markdown note. - Spatial cards are edited in Obsidian’s canvas UI rather than in place — move the node, change its text, relabel the edge, then re-sync.
- Node IDs are stable across edits, so moving a node around the canvas never breaks the link to its cards.
- Deleting a text node deletes the cards it owned. Recreating similar cards in a new node reattaches their previous scheduling where the content still matches.