No description
Find a file
2026-07-20 17:55:03 +02:00
.eslintrc.json Add ESLint (Obsidian config) and npm tooling 2026-07-20 17:21:18 +02:00
.gitignore Initial commit: Tidy Titles Obsidian plugin 2026-06-21 23:32:40 +02:00
LICENSE Initial commit: Tidy Titles Obsidian plugin 2026-06-21 23:32:40 +02:00
main.js Cleaups before push upstream 2026-07-20 17:55:03 +02:00
manifest.json Cleaups before push upstream 2026-07-20 17:55:03 +02:00
package-lock.json Add ESLint (Obsidian config) and npm tooling 2026-07-20 17:21:18 +02:00
package.json Cleaups before push upstream 2026-07-20 17:55:03 +02:00
README.md Defer new-note location to Obsidian instead of a plugin setting 2026-07-20 17:21:18 +02:00
styles.css Cleaups before push upstream 2026-07-20 17:55:03 +02:00
versions.json Add publishing metadata for community index 2026-07-20 17:21:18 +02:00

Tidy Titles

An Obsidian plugin that keeps your filenames tidy while preserving the human-readable title.

When you create a note and give it a name like This is my Node, Tidy Titles:

  1. Slugifies the filenamethis-is-my-node.md (lowercase + hyphens by default, configurable).

  2. Stores the original title in frontmatter so nothing is lost:

    ---
    title: This is my Node
    aliases:
      - This is my Node
    ---
    

Pair it with the Front Matter Title plugin to display the original title in the file explorer, tabs, and graph while the files on disk stay slug-clean.

Features

  • Hooks Obsidian's native "New note" — create a note, type its name, and the filename is slugified and frontmatter is added automatically. Only acts on new, empty notes, so it never clobbers existing content or ordinary renames.
  • New note from title command — a modal prompt with a live slug preview. Bind it to Ctrl+N (and clear the core "Create new note" hotkey) in Settings → Hotkeys if you'd rather name a note in a modal up front than tidy the inline name afterwards. New notes go wherever Obsidian's Default location for new notes setting points.
  • Rename note title command — the way to change a note's title: a modal prefilled with the current title: lets you edit it, then updates the frontmatter title/aliases and re-slugifies the filename to match. Also available by right-clicking a note in the file explorer, on a tab, or in the editor, and bindable to a hotkey via Settings → Hotkeys. Alias handling on rename is configurable (see Keep previous aliases on rename below).
  • Rename current note to slug of its title command — re-slugifies an existing note from its title: frontmatter (or its current filename), without changing the title.
  • Rename current note's folder to a slug command — tidies imported or oddly-named folders.
  • Backlink-safe — renames use Obsidian's fileManager.renameFile, so links to the note are updated automatically.

Configurable slug rule

The transform is a configurable regex replace (Settings → Tidy Titles):

Setting Default Meaning
Hook Obsidian's "New note" on intercept native new-note creation
Lowercase on lowercase the title before applying the pattern
Pattern \s+ regex of characters to replace
Flags g regex flags
Replacement - string each match becomes
Trim character - strip this char from the start/end of the result
Add aliases on also write the title to the aliases list
Keep previous aliases on rename on on rename, keep earlier titles as aliases (link-safe); off replaces them with just the new title

The defaults produce a kebab-case slug: This is my Nodethis-is-my-node.

For a strict slug that also drops punctuation while preserving Unicode letters such as å ä ö, set:

  • Pattern: [^\p{L}\p{N}]+
  • Flags: gu

e.g. FSX: To Buyfsx-to-buy.

The settings tab shows a live preview so you can see what your regex produces.

Installation (manual)

This plugin is plain JavaScript and requires no build step.

  1. Copy main.js and manifest.json into <your-vault>/.obsidian/plugins/tidy-titles/.
  2. In Obsidian, open Settings → Community plugins, then enable Tidy Titles.

License

MIT