Create interactive, nested multi-column layouts — without losing sibling columns when editing in Live Preview.
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]]b:, bc:, t:, sb:, hd:)+ / x buttons in each column header%% 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.
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, x — remove columnRight-click any column to:
Settings → Community Plugins → Advanced Multi Column
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.