Note Refactor Plus

approved

by aonosota

Extract selections or headings into new notes using multiple configurable profiles (template, folder, filename rule, link style). - This plugin has not been manually reviewed by Obsidian staff.

1 stars804 downloadsUpdated 1mo agoMIT

English | 日本語

Note Refactor Plus

Extract selected text or entire heading sections into new notes — using configurable profiles that control filename rules, destination folders, template files, frontmatter, and more.

Features

  • Selection extraction — extract highlighted text into a new note
  • Heading extraction — extract the section under the cursor's heading
  • Bulk split by heading level — split an entire note at every H1, H2, or H3
  • Split from cursor — move everything from the cursor position to the end of the note into a new note
  • Multiple profiles — each profile is a preset combining all extraction settings; switch between them per operation
  • Command palette and hotkeys — a command is registered for each profile so you can assign hotkeys
  • Editor context menu — right-click to extract with a profile directly from the editor
  • Undo last extract — one-step undo that restores the source note and deletes the created file
  • Templater integration — optionally run Templater on the new note right after creation
  • Note Refactor import — import your existing Note Refactor settings as a starting profile
  • Bilingual UI — English and Japanese (follows Obsidian's locale setting)

Requirements

  • Obsidian 1.13.1 or later
  • Desktop and mobile supported

Getting started

  1. Install the plugin through the Obsidian community plugin browser (or copy the release files into .obsidian/plugins/note-refactor-plus/).
  2. Enable the plugin in Settings → Community plugins.
  3. Open Settings → Note Refactor Plus and configure at least one profile.
  4. Select some text in a note, open the command palette, and run Extract selection (choose profile…).

Commands

CommandDescription
Extract selection (choose profile…)Opens a profile picker, then extracts the selection
Extract selection (default profile)Extracts the selection using the default profile
Extract heading (choose profile…)Extracts the heading section at the cursor
Extract heading (default profile)Same, using the default profile
Split by H1/H2/H3 headings (choose profile…)Splits the whole note at every heading of the given level
Split from cursor (choose profile…)Moves from the cursor to the end of the note into a new note
Split from cursor (default profile)Same, using the default profile
Extract: {profile name}One command per profile for direct hotkey assignment
Undo last extractRestores the source note and deletes the most recently created file

Profile settings

Each profile configures the following:

Basic

SettingDescription
NameDisplayed in the command palette and profile picker
IconLucide icon name (e.g. scissors, file-text)
DescriptionOptional subtitle shown in the picker

Extraction

SettingValuesDescription
Extract modeMove / CopyMove removes the text from the source; Copy keeps it
Source replacementLink / Embed / Nothing / Keep and append linkWhat replaces the extracted text in the source note
Note link templateTemplate stringCustom replacement for the source note. Overrides Source replacement when set. Variables: {{title}}, {{source_link}}, {{content}}, {{date:YYYYMMDD}}
After extractOpen / Open in new tab / Open in new pane / Do nothingWhat happens to the new note after creation
Conflict policyAppend number / Append to existing / AskHow to handle a filename collision

Filename

SettingValuesDescription
Filename ruleFirst line / Prompt / PatternHow the new note's filename is determined
PatternTemplate stringUsed when rule is Pattern. Variables: {{title}}, {{date:YYYYMMDD}}, {{time:HHmm}}

Content transforms

SettingDescription
Exclude first lineRemoves the first line from the extracted content. Useful with the First line filename rule to avoid duplicating the title.
Include first line as headingPrepends the original first line as a Markdown heading (H1, H2, or H3) in the new note. Best combined with Exclude first line.
Normalize heading levelsPromotes all heading levels in the extracted content so the shallowest heading becomes H1.

Destination folder

SettingValuesDescription
DestinationSame as source / Fixed folderWhere the new note is saved
Folder pathVault-relative pathUsed when Destination is Fixed folder. Empty = vault root.

Target

SettingValuesDescription
TargetNew note / Append to existing noteCreate a new file or append to one that already exists
Target fileVault-relative pathThe file to append to. Empty = prompt at runtime.
Append positionEnd of file / Under headingWhere in the target file the content is appended
Heading nameExact heading textRequired when Append position is Under heading

Template & frontmatter

SettingDescription
Template filePath to a .md file used as the body template for the new note. Leave empty for plain content extraction.
Run Templater after creationPasses the new note through the Templater plugin immediately after creation. Requires Templater to be installed and enabled.

To add frontmatter properties (tags, source reference, custom keys) to extracted notes, include a YAML front matter block in your template file.

Template variables

The following variables can be used in template files and Note link template:

VariableDescription
{{content}}The extracted text
{{title}} / {{new_note_title}}The new note's filename (without extension)
{{source_link}}A Markdown link to the source note (respects vault link format)
{{source_title}}The source note's filename without extension
{{source_path}}The source note's full vault-relative path
{{heading}}The nearest heading above the cursor (for selection extractions)
{{date:FORMAT}}Current date. FORMAT uses YYYY, MM, DD tokens. Example: {{date:YYYYMMDD}}
{{time:FORMAT}}Current time. FORMAT uses HH, mm, ss tokens. Example: {{time:HHmm}}

Context menu

When Show context menu is enabled in global settings, right-clicking in the editor shows extract options directly. The top N most-used profiles appear as direct items; if you have more profiles than N, a "choose profile…" item appears at the bottom.

The Context menu items slider controls N (default: 3).

Importing from Note Refactor

If you were using the Note Refactor plugin, you can import its settings as a starting profile:

  1. Make sure Note Refactor is installed (it does not need to be enabled).
  2. Open Settings → Note Refactor Plus → Compatibility.
  3. Click Import.

The importer reads Note Refactor's data.json and creates a new profile with equivalent settings. If Note Refactor had an inline note template (not a template file), the content is shown in a notice so you can create a .md file and assign it as the Template file in the new profile.

CSS classes

All CSS classes used by this plugin are prefixed with nrp-. You can override them with a CSS snippet.

ClassElement
.nrp-profile-listContainer for the profile list in settings
.nrp-profile-itemIndividual profile row
.nrp-profile-item.nrp-draggingProfile row being dragged
.nrp-profile-item.nrp-drag-overProfile row that is the drop target
.nrp-drag-handleDrag handle icon on the left of each profile row
.nrp-profile-iconProfile icon
.nrp-profile-infoName + description container
.nrp-profile-nameProfile name text
.nrp-profile-descProfile description text
.nrp-default-badge"default" badge shown on the default profile
.nrp-reorder-btnsUp/down button container
.nrp-profile-actionsAction buttons container (set default, edit, duplicate, delete)
.nrp-btn-default-active"Default" button when the profile is already default
.nrp-profile-editor-modalProfile editor modal
.nrp-section-headingSection headings inside the profile editor
.nrp-icon-previewLive icon preview next to the icon name input
.nrp-setting-groupIndented group of related settings (e.g. append-to-existing details)
.nrp-editor-actionsBottom action bar (Preview / Cancel / Save)
.nrp-preview-modalTemplate preview modal
.nrp-preview-labelSection label inside the preview modal
.nrp-preview-filenameFilename preview block
.nrp-preview-bodyNote body preview block

License

MIT

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.