Heading Outliner

by tgrrrr
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Outliner-style editing for heading-based Markdown: move, indent, and unindent full sections with keyboard shortcuts.

Reviews

No reviews yet.

Stats

stars
43
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Heading Outliner

Heading Outliner is an Obsidian plugin that brings Outliner-style editing to heading-based Markdown. Move, indent, and unindent entire sections using the same keyboard hotkeys as bullet lists.

Features

Section movement (Ctrl+Shift+↑ / Ctrl+Shift+↓)

Move a heading and all its content (body text + sub-headings) up or down past sibling sections. Fold state is preserved - sections that were folded before the move stay folded afterward.

Indent / unindent (Tab / Shift+Tab)

Increase or decrease heading levels. Tab/Shift+Tab only activates when the cursor is on a heading line - body text and list items are unaffected. Supports single or multiple selected headings (range selection or multi-cursor). Fold state is preserved. Smart fold handling: When indenting a heading to become a child of a folded parent, the parent automatically unfolds to show the new child. All other fold states remain unchanged.

Visual heading indent

Optional per-level indentation in both the editor and reading view, styled via CSS.

Compatibility with Outliner

Fully compatible with the Outliner plugin. Both plugins use context-aware CM6 keymaps: Heading Outliner intercepts keypresses only when the cursor is on a heading line and explicitly passes through to Outliner on bullet/list lines. There are no hotkey conflicts.

Installation

Obsidian Community - Heading Outliner

Or just search Heading Outliner in Obsidian Settings → Community plugins → Browse

Hotkeys

Action Hotkey
Move section up Ctrl+Shift+↑
Move section down Ctrl+Shift+↓
Indent section Tab (on heading line)
Unindent section Shift+Tab (on heading line)

Hotkeys are handled via CodeMirror 6 keymaps and are not exposed to Obsidian's hotkey manager. This is intentional: these keys need context-aware interception (activate only on heading lines, pass through otherwise) which Obsidian's command system cannot provide (see Hotkey Architecture Dilemma). Custom modifier configuration is planned for a future release.

Settings

Setting Default Description
Indent headings by level On Visually indent headings by level
Indent size (em) 0.5 Spacing per heading level

Roadmap

  • Implement moving all selected blocks up/down, same way as indenting/unindenting selected blocks work
  • Implement custom movement modifier configuration via individual ALT, CTRL, SHIFT boolean toggles in settings
  • Implement Drag-n-drop

Changelog

1.0.2

  • Prepared for release, bugs fixed

0.0.4

  • Fixed: Multi-selection now preserves all selections after indent/unindent
  • Fixed: Nested headings no longer cause duplicate text changes
  • Fixed: Fold states are now properly preserved during operations
  • Fixed: When indenting into a folded parent, only that parent unfolds (siblings stay folded)
  • Refactored: All operations now use native CodeMirror 6 API for better reliability

0.0.3

  • Initial release with core features