MarkBase combines Markdown and Obsidian Bases into one Freeform view. Rendering the visible properties and formulas for every query result as one continuous Markdown document.

\n. Enter \n\n for a
blank line between blocks.\n for a new line, such as ---\n\n---, or clear the
option to join results without a separator.file.contents, and drag it to where the
note's Markdown body should render. YAML frontmatter is omitted.[[ to search for notes and insert a
wikilink. Changes save when focus leaves the editor.Each selected value is rendered as Markdown, in property-menu order. Single
newlines in multiline formula values remain visible. file.name is rendered as
a link to its note. Changes to matching notes, formulas, property order, and
view options update the view automatically.
For a fixed custom layout, create a Markdown file and add placeholders using full Bases property IDs:
# [[{{file.path}}|{{note.title}}]]
{{formula.summary}}
{{file.contents}}
Then select it under Configure view → Template override. The template is repeated for every result. Because the template explicitly controls placement, its placeholder order takes precedence over the Base properties menu. Clear Template override to return to property-order rendering. In template mode, the line separator setting is ignored because the template provides the layout.
The view replaces these placeholder forms before rendering:
| Placeholder | Value |
|---|---|
{{note.property}} |
A property from the note's frontmatter |
{{file.property}} |
A built-in file property such as file.name or file.path |
{{file.contents}} |
The note's Markdown body, excluding YAML frontmatter |
{{formula.name}} |
A formula defined in the current Base |
Whitespace inside braces is optional. Missing values render as empty text.
Unsupported placeholders remain unchanged. Formula expressions must be defined
in the Base first; the template references their formula.name.
In template mode, place {{file.contents}} where the note body should appear.
file.contents is provided by the Freeform view, not the Bases formula engine.
Obsidian currently does not expose an API for plugins to add file properties to
formula evaluation, so it cannot be referenced from a Base formula.
Each result is rendered relative to its source note, so relative links and embeds resolve in that note's context. Template edits are reflected automatically. MarkBase does not add labels, italics, callouts, or other formatting; those come only from property values or an explicitly selected template.
The ready-made mark-base-demo-vault includes
a Base, two sample notes, and a Freeform template.
npm install
npm run build
main.js, manifest.json, and styles.css to:<Vault>/.obsidian/plugins/mark-base/
For watch mode during development:
npm run dev
This repository includes a ready-made demo vault in /mark-base-demo-vault.
.\scripts\build-to-demo-vault.ps1
npm run buildmain.js, manifest.json, and styles.css to mark-base-demo-vault/.obsidian/plugins/mark-base/mark-base-demo-vault in ObsidianSee mark-base-demo-vault/README.md for a
guided walkthrough.