Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Markdown prettifier

cristianvasquezcristianvasquez55k downloads

Fix and reformats ugly Markdown.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates13

For similar functionality I recommend: obsidian-linter ( I'm using it myself 🙂 )

Markdown prettifier for Obsidian

Tries to fix and reformat ugly Markdown and adds things like 'modified date' etc.

The default hotkey is Ctrl+Alt+L.

Examples

Hashtags janitor

Say you have:


A #new and #exciting paragraph!

After 'Update fields':

---
tags:
    - '#new'
    - '#exciting'

---

A #new and #exciting paragraph!

Update values in the frontmatter

Before:


I wrote this, but I don't remember when!

After:

---
date updated: '2020-11-23T16:47:37+01:00'
---

I wrote this, but I don't remember when!

Headers can be configured through a template, to add dates or IDs

To generate dates you can use the moment.js format, like

date created: '{{date}}'
date updated: '{{date:YYYY-MM-DDTHH:mm:ssZ}}'

To generate RFC4122 UUID (universal Ids), use the following format:

id: {{UUID}}

Autolink literals

Example

Before:

www.example.com, https://example.com, and [email protected].

After:

[www.example.com](http://www.example.com), <https://example.com>, and <[email protected]>.

Ordered lists

Normalizes ordered lists.

Example

Before:

1. foo
    1. aaa
    1. bbb
    4. ccc
1. bar
1. baz

After:

1.  foo
    1.  aaa
    2.  bbb
    3.  ccc
2.  bar
3.  baz

Tables

Normalizes table formatting.

Example

Before:

**A**|**B**|**C**
|---:|:---|---|
a |b |c
x |y |z

After:

| **A** | **B** | **C** |
| ----: | :---- | ----- |
|     a | b     | c     |
|     x | y     | z     |

Other similar plugins

Other alternatives to check out :)

  • obsidian-plugin-prettier
  • Obsidian Linter

This plugin uses the following libraries

  • remark
  • remark-gfm
  • remark-images
  • remark-frontmatter

How to compile the plugin

First, install the dependencies with

npm i

Then, you can compile the plugin with:

npm run build

This will create a main.js file in the project root. That is the entry point of your plugin.

Manual installation

Download zip archive from GitHub releases page. Extract the archive into <vault>/.obsidian/plugins.

Alternatively, using bash:

OBSIDIAN_VAULT_DIR=/path/to/your/obsidian/vault
mkdir -p $OBSIDIAN_VAULT_DIR/.obsidian/plugins
unzip ~/Downloads/obsidian-prettify-0.1.zip -d $OBSIDIAN_VAULT_DIR/.obsidian/plugins

Version History

v.1.1

  • Fixed some escaping bugs
  • Removed space for frontmatter

v.0.0.9

  • Separation between new header template and update template
  • UUID support

v.0.0.7

  • New Refactor tags functionality (ctrl+shift+o)
  • Can add emoticons as tags

v.0.0.6

Fixed frontmatter bug

v.0.0.5

Added indent for lists Sets settings as recommended

v.0.0.4

Fixed a bug that escaped \ Added some feedback to the user

v0.0.3

Enabled frontmatter and settings!

Included: remark-frontmatter

v0.0.2

Added tests!

Included: remark-gfm and remark-images

v0.0.1

Initial Release, just playing around for the first time with Obsidian and the plugins. No settings, Just the minimum possible

Disclaimer

This plugin is provided as is, and is focused on my personal use of Obsidian on Linux. As such it is not thoroughly tested across all operating systems and features of Obsidian.


Pull requests are both welcome and appreciated. :)

I love coffee, you can send me one here: https://www.buymeacoffee.com/pelado :D

59%
HealthFair
ReviewCaution
About
Reformat Markdown in Obsidian to clean messy syntax, normalize ordered lists and tables, and convert inline hashtags and literals into frontmatter entries and links. Update or insert frontmatter fields like modified dates and UUIDs, autolink URLs and emails, and renumber lists for consistent formatting.
Markdown
Details
Current version
0.1.3
Last updated
5 years ago
Created
6 years ago
Updates
13 releases
Downloads
55k
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Author
cristianvasquezcristianvasquez
github.com/cristianvasquez
GitHubcristianvasquez
  1. Community
  2. Plugins
  3. Markdown
  4. Markdown prettifier

Related plugins

Importer

Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Fantasy Statblocks

Create, manage and view a Fantasy Bestiary with Dungeons and Dragons style statblocks.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

Auto Link Title

Automatically fetches the titles of links from the web.

Chronos Timeline

Render interactive timelines inline in your notes from simple markdown

Consistent Attachments and Links

Move note attachments and update links automatically.

Automatic Table Of Contents

Create a table of contents in a note that updates itself when the note changes.