English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español | Français
Organize the outline and sections of your Obsidian Markdown notes quickly. This plugin lets you navigate, copy, select, move, insert, and align headings. It is useful when restructuring long notes, reordering sections, or maintaining a consistent heading hierarchy.
Browse all headings in the current note and move the cursor to the selected heading.

Browse all headings in the current note. After selecting one, you can copy the heading or insert its heading marker at the current cursor position.

Move a heading and all of its content to the position after the selected heading and before the next higher-level heading. The moved heading level is changed to match the selected heading, and its descendants are adjusted by the same amount.
[!important] The heading hierarchy is changed to align the heading level.
Example: Align H5 with H3. The plugin finds the next heading higher than H3 (H2), moves H5 and its content before that H2, and changes H5 to the same level as H3.
Before:
## H2
### H3
#### H4
## H2
##### H5
###### H6
After:
## H2
### H3
#### H4
### H5
#### H6
## H2

[!caution] Obsidian supports heading levels 1 through 6 only. When an adjustment would exceed level 6, the heading is displayed at level 6.
Example: align H3 ✌️ with H4.
Before:
## H2
### H3
#### H4
##### H5
## H2
### H3 ✌️
#### H4 ✌️
##### H5 ✌️
###### H6 ✌️
After:
## H2
### H3
#### H4
##### H5
#### H3 ✌️
##### H4 ✌️
###### H5 ✌️
###### H6 ✌️
## H2
Move a heading and all of its content under the selected heading, before its next higher-level heading. The inserted heading level is adjusted to preserve the intended hierarchy and make it a child of the selected heading.
[!important] You cannot insert a heading under one of its own descendants or under its current parent, because it already belongs there.
[!important] Whenever there is a level difference between the moved heading and the target heading, the moved heading level is adjusted to preserve a valid hierarchy.
Example: Insert H4 under H2 ☝️.
Before:
## H2 ☝️
### H3
## H2
#### H4
Without adjusting its level, H4 would become a child of H3 rather than a direct child of H2 ☝️:
## H2 ☝️
### H3
#### H4 ❌
## H2
To preserve the intended structure, H4 is changed to level 3:
## H2 ☝️
### H3
### H4 ⭕
## H2

[!caution] Obsidian supports heading levels 1 through 6 only. When an adjustment would exceed level 6, the heading is displayed at level 6.
Example: Insert H3 ✌️ under H4.
Before:
## H2
### H3
#### H4
##### H5
## H2
### H3 ✌️
#### H4 ✌️
##### H5 ✌️
###### H6 ✌️
After:
## H2
### H3
#### H4
##### H5
##### H3 ✌️
###### H4 ✌️
###### H5 ✌️
###### H6 ✌️
## H2
Move the selected heading and all of its content to the position after another selected heading and before that heading's next section. This command does not change heading levels.
[!important] This command changes only the position of the heading and its content. It keeps the original heading hierarchy.
Example: Moving H1 to H2 ☝️, the plugin finds the next heading(H3) from H2 ☝️, and moves H1 and its content before H3 without changing their levels.
Before:
## H2 ☝️
### H3
# H1
## H2
After:
## H2 ☝️
# H1
## H2
### H3

Move the block containing the current cursor position under the selected heading.

Move the selected text under the selected heading.

Select all content under the selected heading.

Heading Shifter already provides several useful heading features. This plugin avoids duplicating those features unless necessary; install Heading Shifter when you need its corresponding functionality.