Advanced Note Composer

by mnaoumov
5
4
3
2
1
Score: 67/100

Description

The Advanced Note Composer plugin extends the functionality of Obsidian's core Note Composer plugin by addressing common limitations during note merging and content extraction. It intelligently updates relative links when content is moved between files, preventing broken links that usually require manual fixing. Additionally, it handles invalid characters in titles by either sanitizing them or storing the original form in note aliases or frontmatter titles for better compatibility with quick switcher and metadata-based workflows. This plugin is especially useful for users who regularly restructure their notes and want a smoother, error-free experience.

Reviews

No reviews yet.

Stats

26
stars
11,711
downloads
0
forks
530
days
2
days
2
days
3
total PRs
0
open PRs
1
closed PRs
2
merged PRs
302
total issues
0
open issues
302
closed issues
995
commits

Latest Version

3 days ago

Changelog

  • feat(reorder): merge reversing a heading level and the end drop zone (#307)

Full Changelog: https://github.com/mnaoumov/obsidian-advanced-note-composer/compare/5.17.0...5.18.0

README file from

Github

Advanced Note Composer

Buy Me a Coffee GitHub release GitHub downloads Coverage: 100%

Obsidian's core Note composer moves text between notes, but it moves it bluntly: relative links come out pointing at nothing, a heading whose title contains a character a file name cannot hold is refused outright, and extracted text is always appended to the target — you never get to say where it lands. This Obsidian plugin fixes those, and then goes considerably further: whole folders can be merged, split, flattened, reordered and renamed; a note's heading hierarchy can become a folder tree; and a selection can be marked in one note and dropped at an exact cursor position in another.

Demo vault

The documentation is an interactive demo vault. Every feature has a note that explains what it does and why you would want it, and walks you through it step by step — most of them with a button that sets the relevant setting for you so you can try it immediately.

Start reading here — it is plain markdown, so it works on GitHub with nothing installed.

A copy of the vault ships with every release. You can access it via any of the following:

  1. Running the Advanced Note Composer: Open demo vault command.
  2. Downloading advanced-note-composer-demo-vault.zip from the Releases. It unzips into a single advanced-note-composer-demo-vault-<version> folder.
  3. Browsing its source in demo-vault/ in this repository.

What it does

  • Merge — a note into another, a folder into a folder, several selected notes at once, or a whole folder tree down into one file, with frontmatter reconciled by a strategy you choose and attachments carried along. Name the folders that must never be poured together, however alike their names, and an incoming one arrives numbered beside its namesake instead of merged into it. Merge file · Merge folder · Merge folder into single file · Merge multiple files · Frontmatter merge strategy
  • Extract — a selection, a heading and everything under it, the block between two horizontal rules, or everything before or after the cursor — leaving a link, an embed, or nothing behind. With nothing selected it creates an empty note and leaves the link at the cursor, so a note you have not written yet can exist without your cursor going anywhere; the file explorer's folder menu creates one the same way. Give it a split template and the new note is not empty at all — it comes out holding the template, with the cursor where {{content}} was. Extract selection · Extract heading · Extract between horizontal rules · Text after extraction · Create empty note
  • Split — by heading level, or recursively, turning a whole note's heading hierarchy (or one section of it) into a folder tree. The picker says up front whether you are creating a note or merging into an existing one, and what it creates can be auto-numbered, continuing the sequence the destination folder already has. Split by headings · Split into folder · Split headings recursively · Create or merge when splitting · Auto-number splits
  • Swap — two files, two folders, or two selections trade places in one reversible operation. Swap file · Swap folder · Swap selections
  • Folder operations — flatten a folder into its parent, move one somewhere else, create a folder and its notes from a template, reorder folders and renumber them, or rename one and keep its folder note in step. What a move or a flatten relocates can be auto-numbered too, continuing the sequence the destination already has. Flatten folder · Move folder to · Create folder with notes · Reorder folders · Rename folder · Auto-number moves
  • Select — commands that only set the selection and stop: a heading and its section, that section without its heading line, everything before or after the cursor, the block between two horizontal rules — or an arbitrary range, by anchoring one end and marking the other. Every other feature here starts from a selection, and making one by hand is exactly what fails on a phone. Select ranges · Selection anchor
  • Smart cut & paste — mark a selection or a whole heading, then drop it at an exact cursor position in any note, including the one you took it from. Smart cut and paste
  • Titles, links and frontmatter — relative links are rewritten so they keep resolving, invalid title characters are cleaned up (or mapped by a template of your own) instead of refused, a title containing / can become a real path, and merged or split content can be wrapped in a template. Relative links · Invalid titles · Treat title as path · Templates
  • Headings — reorder a note's sections or move one under another heading, number them and keep the numbers right, or rename a heading and have its backlinks follow. Reorder headings · Rename heading
  • Include / exclude paths — two independent filters: what the plugin may touch, and where its commands are offered at all — each narrowable per command category, so a folder can lose its merges and keep everything else, or stay out of the reorder dialog while every other command still uses it. Block commands on excluded paths
  • UI — every dialog can be minimized, and every one of them can be pointed at a different target without cancelling the operation; operations report what they are doing; each category of commands can be moved off the crowded editor context menu and onto the empty margin Readable line length leaves beside the text; and the settings tab is a short list of pages rather than one long scroll. Minimizing dialogs · Operation notices · Change target · Finding a setting · Command menu placement

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

By default, debug messages for this plugin are hidden.

To show them, run the following command in the DevTools Console:

window.DEBUG.enable('advanced-note-composer');

For more details, refer to the documentation.

Changelog

All notable changes to this project will be documented in the CHANGELOG.

Contributing

Contributions are welcome — see CONTRIBUTING to get set up.

Support

My other Obsidian resources

See my other Obsidian resources.

License

© Michael Naumov