Heading Shifter

approved

by kasahala

Easily Shift and Change Markdown headings.

β˜… 106 stars↓ 30,840 downloadsUpdated 2mo agoMIT
View on GitHub

github release

PayPal "Buy Me A Coffee"

Easily Shift and Change markdown headings.

Why use this plugin

Obsidian links numerous markdown files to form knowledge. Daily rearrangement of links is important to create a good knowledge base.

The following situations often occur in this process.

  1. Cut out A part of File 1 to an independent File 2 and linked.
    • Heading3 in file 1 is changed to Heading1 in file 2
  2. Incorporated the content of File 3 into a part of File 4
    • Heading2 in file 3 is changed to Heading4 in file 4

With this plugin, you can change the Heading size (the number of #) in a batch instead of changing it manually.

How to install

From within Obsidian

You can activate this plugin within Obsidian by doing the following:

  • Open Settings > Community plugin
  • Make sure Restricted mode is off
  • Click Browse community plugins
  • Search for Heading Shifter
  • Click Install -> Enable

Manual installation

Download directory(includes main.js, manifest.json, styles.css) from the latest release and put them into <vault>/.obsidian/plugins/ folder.

Features

Apply Headings

Applying Heading Demo

Commands

CommandDescriptionHotkey
Apply Heading 0Change Current line to no heading.-
Apply Heading 1~6Change Current line to heading 1~6.-

It is useful to assign a hotkey such as Ctrl + 0 ~ 6

Shift Headings

Headings Shift Demo

Settings

SettingDescriptionValue(Default)
Lower limit of HeadingThe lower Heading Size that will be decreased by the Heading Shift0~6(1)
Enable override tab behaviorIf true, Tab execute "Increase Headings" and Shift-Tab execute "Decrease Headings" [^2]boolean(false)

[^2]: May conflict with other plugin behavior

Commands

CommandDescriptionHotkey
Increase HeadingsIncrease heading of selected lines(with heading)
Increase Headings(forced)Increase heading of selected lines(Even if there is no heading)
Decrease HeadingsDecrease heading of selected lines(with heading)

It is useful to assign a hotkey such as Ctrl + Shift + Left/Right

  • Increase Headings and Increase Headings(forced) is ineffective if selected lines contains less than Lower limit of Heading.
  • Decrease Headings is ineffective if selected lines contains more than heading 6.

Insert Headings

Commands

CommandDescriptionHotkey
Insert Heading at current levelChange current line headings to current level
Insert Heading at one level deeperChange current line headings to current level + 1
Insert Heading at one level higherChange current line headings to current level - 1

Common Settings

SettingDescriptionValue(Default)
Style to remove(default)If this style is at the of a line, remove itboolean(All true)
Style to remove(Other arbitrary group of regular expressions)If this style is at the of a line, remove itstring
Children List behaviorBehavior when the target row possesses a child list"outdent to zero"(default) / "sync with headings" / "noting"

Style to remove

This is the toggle between removing or retaining specific style when applying Heading in a "single" row.

Beginning

- or 1.,2.,n. or user defined string(RegExp)

BeforeAfter(True)After(False)
- (ul)- line## line## - line
1. (ol)1. line## line## 1. line
πŸ€”(user defined)πŸ€”line## line## πŸ€”line
Surrounding

**, _ , etc... or user defined string(RegExp)

BeforeAfter(True)After(False)
**(bold)**line**## line## **line**
_(italic)_line_## line## _line_
πŸ€”(user defined)πŸ€”lineπŸ€”## line## πŸ€”lineπŸ€”

List behavior

- heading target
    - listA
        - listB

If you call 'Apply Heading 2',

Nothing

## heading target
    - listA
        - listB

Subsequent listings will remain in depth and will not have the correct markdown structure.

Outdent to zero

## heading target

- listA
    - listB

Sync with headings

\t\t- ## heading target
\t\t\t- listA
\t\t\t\t- listB

Use Case

Operate headings like an outliner like the following,

# The Festival Myster -> hit "Apply 1"

This is a great document.

## Chapter One -> hit "Insert deeper"

### Prologue -> hit "Insert deeper"

The sun was setting over the horizon...

### The Summer Festival -> hit "Insert current"

As the townspeople gathered in the town square...

## Chapter Two -> hit "Insert higher"

### The Mystery of the Missing Prize -> hit "Insert deeper"

As the summer festival came to a close...

If you want to make headings deeper or higher than 2, use "shift" or "apply".

LoadMap

Nothing specific at this time.

Contribute

Feel free to report issues or request features.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.