Marcel Schwarz1 downloadsShow notes as cards in Bases, using each note's own content as the cover instead of an image.
An Obsidian Bases view that shows notes as cards — using the note's own content as the cover, where the built-in Cards view puts an image.
Bases can tell you a note's name, tags and dates. It cannot show you a single sentence of
what the note actually says: there is no file.content, and no way for a plugin to add a
column to the built-in table. This view reads the body itself and puts it where you can
see it.

A .base of saved articles, with markdown rendering and the subtle tint on. Each card is as
tall as the note it shows, and the box at the top searches the text on the cards, not their
titles.
Requires Obsidian 1.10.0 or later (the Bases view API).
From a release. Download main.js, manifest.json and styles.css from the
latest release and
put all three in <vault>/.obsidian/plugins/bases-content-cards/. Or point
BRAT at
iCaotix/obsidian-bases-content-cards and let it handle updates.
From source.
npm install
npm run build
npm run install-to-vault -- "/path/to/your/vault"
That copies the same three files into place. To update, run the three commands again.
Either way: enable Bases Content Cards under Settings → Community plugins, then add a
Content cards view to any .base.
#Summary), or a block (^abc123).Bases has a search of its own, in the toolbar, and it works on these cards already — but it can only see the properties the view is showing, because that is all Bases can see. The box in this view is the other half: it reads the body.
The two compose. The toolbar narrows by name and properties, this one narrows further by content, and either works alone.
Worth knowing:
: selector, or just
the section when the cover is #Heading. What the card is about is what you search..base.Set per view, in the Bases view config:
| Option | Meaning |
|---|---|
| Cover | : whole body · #Heading a section · ^block-id a block · 12:20 line range |
| Cover override property | A note property whose value replaces the cover selector for that note |
| Cover length | Characters before truncation (default 300) |
| Render markdown | Off by default — plain text is faster and reads fine at excerpt size |
| Wrap long titles | Off by default — a title too long for its card is cut with an ellipsis. On, it wraps in full and the cover gives up the room |
| Open notes in a new tab | Off by default — a click opens the note in the base's own tab. A modifier still wins over this |
| Card tint | None, subtle or strong — each note gets a hue from its path, so the colour is stable across sorts and reopens but means nothing in itself |
| Card height | Fit to content, or uniform |
| Maximum card height | Small…extra large, or unlimited — a card then grows to fit its whole cover |
Line ranges are supported but discouraged: they silently point somewhere else as soon as a note is edited above them. Headings and block IDs survive editing.
Quote the value in frontmatter. Selectors collide with YAML syntax — a bare : is
invalid, and a bare # starts a comment, so the property ends up empty and the view falls
back to its own setting:
---
cover: ":" # not cover: :
---
---
cover: "#Summary" # not cover: #Summary
---
npm install
npm run dev # esbuild watch → main.js
npm test # the pure logic, runs in Node without Obsidian
npm run build # typecheck + production bundle
npm run lint
src/selector.ts and src/search.ts have no Obsidian imports, and everything else that only
needs its types — the option coercions, the span arithmetic, the per-tab memory — is tested in
plain Node too. Edge cases in tests, appearance in the dev vault.
See docs/dev-workflow.md for the full setup (separate dev vault, symlink, hot reload, releasing).
| Document | Contents |
|---|---|
| docs/decisions.md | The choices that shaped the plugin, newest first |
| docs/bases-api.md | What the Bases plugin API does and does not offer, with sources |
| docs/dev-workflow.md | Building, running and releasing it |
| docs/roadmap.md | What could come next, and what deliberately will not |
In daily use. The view is read-only: it never writes to your vault. It makes no network requests, collects no telemetry, needs no account, and reads nothing outside the vault you opened it in — everything it shows comes from notes the base already returned.
Known limits:
0BSD — use it, change it, ship it, no attribution asked for.