An Obsidian plugin that renders Wikipedia-style infoboxes from YAML frontmatter, featuring an interactive visual editor and a floating panel pinned to the top-right of the reading and editing panes.
|), and commas (,) automatically render as bulleted listsmain.js, styles.css, and manifest.json from the latest release.obsidian/plugins/omni-infobox/ inside your vaultSearch for Omni Infobox in the Obsidian community plugin browser.
Open the Command Palette (Ctrl/Cmd + P) to access:
infobox block from frontmatter entirely (only available when the note has an infobox)Open an infobox's editor and choose Save as template. Enter a name to save a copy of its sections, labels, values, images, tags, and colors in the Infobox templates vault folder. Existing templates are never overwritten. You can edit these template notes like any other note, including clearing example field values.
On another note, run Insert infobox template and choose a template. The imported title becomes the destination note's name. The note body and other frontmatter properties are preserved. Templates are independent copies: editing one does not change infoboxes already imported from it.
Change the template folder under Settings → Omni Infobox. You can also place existing notes with an infobox: block in that folder, including subfolders. This works alongside Obsidian's core Templates plugin; it does not require it.
Expand Colors in the infobox editor to set an optional card background, text, section background, section text, and border color. Use hex colors such as #e6f0e9 or #315b43; clear a value to return to the theme default. For vault-wide colors, install the optional Style Settings plugin and open its Omni Infobox section, with separate light and dark colors. Per-note colors take precedence.
The same values can be stored in frontmatter:
infobox:
title: Character
colors:
background: '#e6f0e9'
text: '#203329'
section: '#315b43'
sectionText: '#ffffff'
border: '#a3baa9'
fields:
- section: Identity
- Name: Example
Wide panes reserve space beside the note for a pinned infobox. Panes narrower than 700 CSS pixels show the card above the note content, inside its scroll area. Resizing panes or switching between Reading view, Live Preview, and Source mode updates placement automatically.
Every rendered infobox includes an Edit button at the bottom of the panel. Clicking it opens a modal where you can:
Changes save back to the note's YAML frontmatter automatically.
Add an infobox: block to your note's YAML frontmatter:
---
infobox:
supertitle: Historical Figure
title: Albert Einstein
subtitle: Theoretical Physicist
images:
- label: Portrait
image: einstein.jpg
caption: Photograph from [[1921]]
- label: Lecture
image: "[[einstein-lecture.jpg]]"
caption: Einstein giving a lecture
tags: [science, physics]
showTags: true
fields:
- section: Personal
- Born: March 14, 1879
- Died: April 18, 1955
- Nationality: [[Germany|German]] / [[United States|American]]
- section: Career
- Field: Theoretical physics
- Known for: General relativity | Special relativity | Photoelectric effect
- Awards: Nobel Prize in Physics (1921)
---
| Key | Type | Description |
|---|---|---|
supertitle |
string | Optional italicized header rendered above the main title |
title |
string | Bold heading at the top of the card |
subtitle |
string | Italic line below the title |
image |
string | A single filename or URL. Supports [[wikilinks]] and ![[wikilinks]] |
caption |
string | Small italic text below a single image |
images |
list | Image gallery entries, each with image and optional label and caption |
tags |
list/string | Optional tags to show in the infobox. Falls back to the note's frontmatter and inline tags |
showTags |
boolean | Set to false to hide tags for a note |
fields |
list | Array of single-key objects (see below) |
Text values in title, subtitle, caption, section headers, field labels, and field values can include internal links such as [[Mondstadt]] or [[Knights of Favonius|the Knights]]. Quote values that begin with a wikilink, especially when text follows it:
- Ancestors: "[[Marlow Sonners]] (maternal great-grandmother, deceased)"
An unquoted [[link]] is interpreted as a YAML array, and adding text after it makes the YAML invalid. For this specific error, the plugin offers Add YAML quotes in place of the infobox. This repairs the values only when the resulting frontmatter parses successfully; it preserves the note body. Other YAML errors must be corrected manually.
Each item in fields is a single-key YAML object:
section to insert a divider with a category labelfields:
- section: Category Name # renders as a section divider
- Label: Value # renders as a data row
Field values containing multiple items are automatically rendered as a bulleted list:
Known for: [General relativity, Special relativity]- bulletsKnown for: General relativity | Special relativityKnown for: General relativity, Special relativityDelimiters inside wikilinks (such as alias pipes or commas) are preserved and will not split the link.
For titled groups of lists inside one field, use Markdown headings and bullets in a YAML block scalar. These can also be entered directly in the visual editor's value box:
fields:
- Aliases: |
#### Codenames
- Black King
- Iron God
#### Nicknames
- Armored Avenger
- [[Golden Boy]]
Each heading becomes a compact divider within the value column, with its list underneath. Inside a block scalar, wikilinks do not need YAML quotes.
Images can be specified as:
image: einstein.jpg (resolved via vault)image: "[[einstein.jpg]]" or image: "![[einstein.jpg]]"image: https://example.com/photo.jpgFor a gallery, use images instead of image. With more than one entry, the infobox shows image tabs:
images:
- label: Portrait
image: "[[einstein.jpg]]"
caption: Photograph from 1921
- label: Lecture
image: "[[einstein-lecture.jpg]]"
caption: Einstein giving a lecture
Issues and pull requests are welcome.
Run npm ci and npm test for regression tests. For real-app checks, use a disposable vault named test-vault with the plugin installed, start Obsidian with a separate --user-data-dir and --remote-debugging-port=9237, then run npm run test:obsidian. Set OBSIDIAN_CDP to use another debugging URL. The smoke test refuses to run against other vault names; it creates Smoke*.md notes and a template in this test vault. Enable Style Settings there to include its integration checks. Screenshots are written to output/playwright (or OBSIDIAN_TEST_OUTPUT). No debugging connection is needed for normal plugin use.
MIT see LICENSE