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 Master

moranrsmoranrs191 downloads

All-in-one Markdown table workflow: floating toolbar, visual grid editor, and merged-cell support with MultiMarkdown ^^ / || syntax.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

English | 简体中文

All-in-one Markdown table workflow for Obsidian. Combines the most useful pieces of three popular table plugins into a single, modern UI:

  • GUI shortcuts (insert / delete / move row & column, alignment) — replaces Advanced Tables
  • Visual grid editor with drag-to-select and merged-cell support — replaces Markdown Table Editor
  • Merged cells rendered in both Reading view and Live Preview, fully compatible with Table Extended / MultiMarkdown syntax — replaces Table Extended

Table Extended uses the same parser hook for source rendering. Running both plugins together is not supported: Table Master will warn you on load and you should disable the others.

Features

1. Floating toolbar

When the cursor enters a GFM table the floating toolbar appears above the first row:

  • Insert / delete row & column
  • Move row up / down, column left / right
  • Align column left / center / right
  • Merge ↑ / Merge ↓ / Merge ← / Split cell
  • Open the grid editor
  • Format / re-pad table
  • Paste a table copied from Excel / a web page (HTML or TSV is detected automatically)

2. Right-click menu

All table operations are also available from the editor's right-click menu when the cursor is inside a table.

3. Visual grid editor

Run the command Open grid editor (or click the grid button on the toolbar) to launch a Modal that displays the table as an Excel-like grid.

  • Click a cell to edit it inline
  • Click and drag, or Shift-click, to select a rectangular range
  • Use the Merge button to merge the selected range
  • Use the Split button to split the cell at the active selection
  • Add / delete rows and columns
  • Click Apply to write the changes back to the markdown source

4. Merged cells (MultiMarkdown / Table Extended syntax)

| Stage              | Direct Products | ATP Yields |
| ------------------ | --------------- | ---------- |
| Glycolysis         | 2 ATP           ||
| ^^                 | 2 NADH          | 3-5 ATP    |
| Pyruvate oxidation | 2 NADH          | 5 ATP      |
| **30-32** ATP                                  |||
  • ^^ — the cell merges with the row directly above (rowspan)
  • A trailing || extends the previous cell by one column; ||| by two, and so on (colspan)

The parser also accepts every other Table Extended construct:

  • Headerless tables (block starts with the separator row)
  • Table caption — [Caption text] or [Caption text][label] immediately above or below
  • Multiple header rows (any rows above the separator row)
  • Multiple <tbody> sections by inserting a single blank line inside the body
  • Multi-line cells continued from the next row with a trailing \
  • Inline Markdown (lists, code, links, embeds) is rendered inside cells in Reading view; Live Preview keeps Obsidian's native widget rendering and only applies merges.

If you prefer maximum portability, set Merged-cell output format to HTML and Table Master will write a regular <table> with colspan / rowspan attributes instead.

Live Preview applies merges by toggling rowspan / colspan attributes and hiding placeholder cells in Obsidian's existing table widget — cell text is left untouched, so the widget remains compatible with normal Obsidian editing. Multi-line cells, captions, and inline markdown re-rendering remain Reading View only.

5. Cell navigation

Tab / Shift-Tab move between cells and Enter jumps to the next row (creating one if needed). Disable in settings if it interferes with your workflow.

6. Design-from-scratch flow

Run Design new table in grid editor… to be asked for rows / columns / header presence first, then drop straight into the grid editor. Hit Apply to insert the finished table at the cursor — no need to be inside an existing table beforehand.

7. Paste tables from Excel / web

Copy a range from Excel, Google Sheets, Numbers, or any web page that contains an HTML <table>, then run Paste table from clipboard (also available as a button on the floating toolbar when the cursor is in a table):

  • Excel / web pages: the rich text/html clipboard payload is parsed; colspan / rowspan are preserved and translated to MultiMarkdown placeholders.
  • Plain TSV: tab-separated text is parsed as a fallback (Excel always provides this).
  • If the cursor is currently inside a table, the import replaces that table; otherwise the new table is inserted at the cursor.
  • Pipes inside imported cells are escaped automatically so the markdown round-trips cleanly.
  • Multi-line cells (Excel Alt+Enter, <br> in HTML, <p>/<div>/<li> blocks) are emitted as a single GFM row with <br> between segments. Reading view + Live Preview both upgrade those <br> tokens to real line breaks, so a multi-line cell still wraps visually while merge structure (rowspan/colspan) stays intact.

Installation

From source

git clone <repo> obsidian-table-master
cd obsidian-table-master
npm install
npm run build

Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/table-master/, then enable the plugin in Obsidian.

Hot-reload during development

npm run dev

esbuild watches src/ and rebuilds main.js on change. Combine with the hot-reload plugin for an instant feedback loop.

Commands

Every action is exposed as a command and can be bound to a hotkey from Settings → Hotkeys.

ID Description
insert-row-above Insert row above
insert-row-below Insert row below
insert-col-left Insert column to the left
insert-col-right Insert column to the right
delete-row Delete row
delete-col Delete column
move-row-up Move row up
move-row-down Move row down
move-col-left Move column left
move-col-right Move column right
align-left/center/right/none Align column
merge-up Merge with cell above
merge-down Merge with cell below
merge-left Merge with cell to the left
split-cell Split merged cell
format-table Re-pad table cells
sort-asc / sort-desc Sort by column
open-grid-editor Open the visual grid editor on the table at the cursor
design-new-table Open the grid editor with a fresh empty table and insert on apply
toggle-floating-toolbar Show/hide the floating toolbar
new-table Insert a new empty table
import-table-from-clipboard Paste an Excel / web table from the clipboard

Settings

  • Merged-cell output format — Extended (^^ for rowspan, trailing || for colspan; same as Table Extended) or raw HTML (colspan / rowspan attributes on a <table>)
  • Show floating toolbar
  • Floating toolbar position — three modes (all use position: fixed so a custom theme can't hide them; non-focused tabs auto-hide their own toolbar):
    • Pop up at click position when clicking a table (default): the toolbar stays hidden until you click inside a table, then springs up at the click point and stays there until you click outside any table.
    • Follow mouse inside table; top-left otherwise: always visible while the editor is focused. Trails the mouse pointer whenever it's hovering a table; falls back to the top-left of the editor when not.
    • Always at the editor's top-left: pinned at the top-left of the editor pane regardless of where you click.
  • Enable Tab navigation
  • Default column alignment
  • Interface language — Auto / English / 中文

Development

npm test            # run unit tests for parser / serializer / ops
npm run build       # type-check and bundle for production

Architecture is layered so logic is decoupled from Obsidian:

src/
  table/      pure model + parser + serializer + ops (no Obsidian deps)
  editor/     editor mutations driven from the cursor
  ui/         floating toolbar, context menu, modal grid editor
  render/     reading-view post-processor + live-preview view plugin
  i18n/       en / zh dictionaries
  settings.ts settings tab
  main.ts     plugin entry

Credits

Inspired by:

  • Advanced Tables by Tony Grosinger
  • Markdown Table Editor by Ivan Tikhonov
  • Table Extended by Zhou Hua

All three are MIT-licensed; this plugin is also MIT.

99%
HealthExcellent
ReviewPassed
About
Edit Markdown tables with a single modern UI that combines GUI shortcuts, a visual grid editor, and merged-cell support. Render merged cells in Reading view and Live Preview, paste tables from Excel/HTML/TSV, and use a floating toolbar and right-click menu for quick row/column operations.
TablesEditingInterface
Details
Current version
0.2.1
Last updated
6 days ago
Created
4 weeks ago
Updates
3 releases
Downloads
191
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
moranrsmoranrs
github.com/moranrs
GitHubmoranrs
  1. Community
  2. Plugins
  3. Tables
  4. Table Master

Related plugins

Advanced Tables

Improved table navigation, formatting, and manipulation.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Datacore

An even faster reactive query engine for the data obsessed.

Hover Editor

Transform the Page Preview hover popover into a fully working editor instance.

Dragger

Drag and drop any block (paragraphs, headings, lists, etc.) to rearrange content like Notion.

Feed Bases

Adds a feed layout to bases so you can display notes with their content in an editable feed view.

Slash Commander

Customize the slash command list, assign each command an icon.

Lineage

A writing interface that combines structure and content. Inspired by Gingko Writer.

Hider

Hide interface elements such as tooltips, status bar, titlebar, and more.

Outliner

Work with your lists like in Workflowy or Roam Research.