amatya-aditya26k downloadsAllows to create interactive multi-columns.
Create interactive, nested multi-column layouts — without losing sibling columns when editing in Live Preview.
Install from Obsidian Community Plugins
Features • Usage • Legacy Usage • Quick Start • Syntax • Installation • Troubleshooting
The problem with existing multi-column plugin? In Live Preview, when you click into one column to edit it, Obsidian collapses the entire block — sibling columns disappear, replaced by raw markup. You lose all visual context of the layout while editing.
Advanced Multi Column fixes this.
It uses lightweight comment markers (%% col-start %%, %% col-break %%, %% col-end %%) instead of wrapping content in a single callout or codeblock.
This means when you edit one column, the other columns stay rendered.
You always see the full layout, making multi-column editing feel natural instead of fighting the editor.
%% col-start %%, %% col-break %%, %% col-end %%[[ triggers file suggestions inside column editors![[image.png]]!tip: Title for a colored header bar with an icon; built-in note, info, tip, warning and danger types, plus your own custom types (icon, background, text color, size, weight)[^1] and inline ^[...] footnotes work inside columns and tables in columns, numbered with the rest of the note and listed at the end of itb:, bc:, t:, sb:, hd:)+ / × buttons on each column; removing a column with content asks first![]() Column headers and coloured backgrounds |
![]() Dashed separator between columns |
![]() Editing a column in place — the other columns stay rendered |
![]() Stacked rows beside a wide column |
![]() Coloured column headers with icons |
![]() Right-click → Insert layout: ready-made layouts |
![]() Nested (child) columns |
![]() Cornell notes layout |
![]() MOC: auto-updating map of notes, by subfolder and by property |
![]() New MOC dialog with a live preview |
![]() Sidebar with an image, headers in Reading view |
![]() Blank layouts, ready to fill |
![]() Right-click in a note: insert columns, layouts and MOCs |
![]() Right-click a column: style it, add, edit or delete |
![]() Nested blank columns — edit one while the rest stay rendered |
|
Demo notes use text from Wikipedia (CC BY-SA 4.0) and images from Wikimedia Commons (each under its own free licence; see the linked articles).
%% col-start %%
%% col-break %%
Left column content
%% col-break %%
Right column content
%% col-end %%
Content between
%% col-start %%and the first%% col-break %%is ignored.
[!WARNING] Type the markers directly in your note. Don't wrap them in a code block: the
```mdfences in this README only display the examples. A fenced layout breaks reading view and can turn the rest of the note into a code block.
Markers must be on their own lines.
| Marker | Purpose |
|---|---|
%% col-start %% |
Start a column block |
%% col-end %% |
End a column block |
col-start accepts optional container style tokens:
%% col-start:b:secondary,bc:accent,sb:1 %%
| Marker | Purpose |
|---|---|
%% col-break %% |
Start a new column (equal width) |
%% col-break:40 %% |
Start a column at 40% width |
%% col-break:w:40 %% |
Explicit width form |
Width and style tokens can be combined:
%% col-break:35,b:blue-soft,bc:blue,t:text,sb:1 %%
| Token | Property | Values |
|---|---|---|
b: |
Background | transparent, primary, secondary, alt, accent-soft, red-soft, orange-soft, yellow-soft, green-soft, cyan-soft, blue-soft, pink-soft |
bc: |
Border color | gray, accent, muted, text, red, orange, yellow, green, cyan, blue, pink |
t: / tc: |
Text color | Same as border color |
sb: |
Show border | 1/0, true/false, yes/no, on/off |
h: / hd: |
Horizontal dividers | Same as show border |
%% col-start %%
%% col-break:40 %%
# Column 1
Top-level content.
%% col-break:60 %%
# Parent column
This column contains nested columns.
%% col-start %%
%% col-break %%
## Child column 1
Nested content.
%% col-break %%
## Child column 2
Nested content.
%% col-end %%
%% col-end %%
| Command | Description |
|---|---|
| Insert 2-wide layout | Two equal columns |
| Insert 3-wide layout | Three equal columns |
| Insert 4-wide layout | Four equal columns |
| Insert layout (custom count) | Uses default count from settings |
| Insert nested layout | Parent with child columns template |
[[ — wikilink suggestions![[...]]+ — add column, × — remove column (asks first if the column has content)Right-click any column to:
Settings → Community Plugins → Advanced Multi Column
A MOC lists notes as links in columns and keeps itself up to date. Right-click in a note and choose Insert MOC → New MOC…: choose its notes with rules on folders, tags and properties joined by And / Or (by default the note's own folder, with its subfolders as columns), see a live preview, and insert. Save options you reuse as templates in Settings → Advanced Multi Column → Maps of content; right-click a MOC → Edit MOC to change it later.
The links are written into the note, so they show in graph view and backlinks. When notes are added, renamed, deleted or retagged, the MOC updates automatically. See the MOC guide for details.
Advanced Multi Column works entirely offline: it makes no network requests and collects no data.
What it accesses, and why:
Advanced Multi Column is in the official Obsidian community plugin list.
Open in Obsidian: https://community.obsidian.md/plugins/advanced-multi-column — select Install there. To jump straight to the plugin inside Obsidian instead, paste this link into your browser's address bar:
obsidian://show-plugin?id=advanced-multi-column
Or from inside Obsidian:
Updates arrive through Settings → Community plugins → Check for updates.
https://github.com/amatya-aditya/advanced-multi-column and click Add Plugin.main.js, manifest.json, and styles.css from the latest release..obsidian/plugins/advanced-multi-column/CSS for older callout-based layouts ([!col] / [!col-md-*]) is supported. Marker syntax is recommended for new notes for extended features.
Use nested sibling callouts in this format:
> [!col]
> > [!col-md]
> > Left column
>
> > [!col-md]
> > Right column
If [!col-md] appears as plain text, the nested callout structure is malformed.
npm install
npm run dev # watch mode
npm run build # production
If you find this plugin useful, consider supporting development:
☕ Buy me a coffee • Ko-fi • Discord
This plugin runs locally in your vault and does not include telemetry.