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

Table Formatter

fangface-hubfangface-hub598 downloads

Formats Markdown tables when files are saved.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates16

An Obsidian plugin for formatting Markdown tables on save.

Features

  • Formats Markdown tables whenever a Markdown file is saved.
  • Runs auto-format while editing in Live Preview or Source mode (never in Reading view).
  • Waits for a pause in typing (3 seconds by default, configurable) before auto-formatting, so it does not interfere with ongoing edits. Because the wait restarts on every change, the formatter also runs after edits Obsidian itself makes to the file, such as re-padding a table edited through the Live Preview table editor.
  • Applies edits through the open editor, so the cursor stays in place and Obsidian does not report the file as externally modified.
  • Leaves the table the cursor is in untouched during auto-format and reformats it once the cursor has moved out of it, so cell editing is never interrupted. The manual command always formats everything.
  • Lets you format manually with the ribbon button (table icon) or the command palette.
  • Can format every Markdown file in the vault at once with the command "Format tables in all files", which is handy when you first add the plugin to an existing vault. It asks for confirmation first and reports how many files were changed.
  • Adds a ribbon toggle button (power icon) to force-enable/disable auto-format and focus control while editing.
  • Shows an ON/OFF toggle in the main screen status bar for quick switching.
  • Supports configurable table cell padding:
    • Fixed number of spaces (0 or more)
    • Blank (auto mode: single-space minimal formatting)
  • Supports configurable number of - characters in the delimiter row.
  • Keeps column alignment: the : markers in the delimiter row (:---, ---:, :---:) are preserved.

Settings

Open: Settings -> Community plugins -> Table Formatter

  • Padding spaces
    • Blank: | cell | style (single-space padding)
    • Integer (>= 0): exactly that many spaces around each cell
  • Table border dash count
    • Blank: auto (based on content width, minimum 3)
    • Integer (>= 1): fixed number of - in each delimiter cell. Alignment colons (:) are kept and placed around the dashes, so a left-aligned column with dash count 3 becomes :---.
  • Auto-format delay
    • Seconds to wait after the last change before tables are auto-formatted (integer >= 1, default 3)
  • Enable auto-format and focus control while editing
    • ON: run modify-triggered formatting while editing in Live Preview or Source mode
    • OFF: force-disable those editing features
  • Table indentation formatting
    • Preserve table indentation: indented tables are excluded from formatting
    • Remove table indentation: indented tables are formatted and indentation is removed
  • Empty cell formatting
    • Padded, "| |": unchanged, | |
    • Single space, "| |": | |, which MD060 compact accepts

Images

  • Editor screen

Editor Screen

  • Setting screen

Setting Screen

Development

npm install
npm run dev

Run lint:

npm run lint

Auto-fix lint issues:

npm run lint:fix

Build production bundle:

npm run build

Note: npm run build runs lint first via esbuild.config.mjs.

Community Plugin Release

Use one of the following version bump scripts depending on the scope of changes:

  • npm run version:patch
    • For backward-compatible fixes only (x.y.z -> x.y.(z+1))
  • npm run version:minor
    • For backward-compatible feature additions (x.y.z -> x.(y+1).0)
  • npm run version:major
    • For breaking changes (x.y.z -> (x+1).0.0)

Each script updates package.json, package-lock.json, manifest.json, and versions.json together.

  1. Commit and push to GitHub.
  2. Create a GitHub Release with tag exactly matching manifest.json version.
  3. Attach release assets: main.js, manifest.json, styles.css (optional).
  4. Submit the repository URL from Obsidian Community Plugins.

Notes:

  • manifest.json in the default branch must be up to date before submission.
  • versions.json should stay in the repository root for Community Plugin compatibility mapping, but it does not need to be attached to the GitHub Release.
  • Plugin id must be unique and must not contain obsidian.
HealthExcellent
ReviewPassed
About
Format Markdown tables on save to ensure consistent alignment and spacing. Configure cell padding (fixed or automatic single-space) and set delimiter dash count (automatic or fixed) to control table width and appearance.
TablesFormattingAutomation
Details
Current version
1.4.0
Last updated
Last month
Created
4 months ago
Updates
16 releases
Downloads
598
Compatible with
Obsidian 1.5.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
fangface-hubfangface-hub
github.com/fangface-hub
GitHubfangface-hub
  1. Community
  2. Plugins
  3. Tables
  4. Table Formatter

Related plugins

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.

Homepage

Open a note, base, or workspace on startup, or set it for quick access later.

BRAT

Easily install a beta version of a plugin for testing.

Advanced URI

Control everything with URI.

Advanced Tables

Improved table navigation, formatting, and manipulation.

QuickAdd

Quickly add new notes or content to your vault.

Lazy Loader

Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.

Hot Reload

Automatically reload in-development plugins when their files are changed

Admonition

Admonition block-styled content.

Editing Toolbar

The Editing Toolbar is modified from cMenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.