Table Tools

approvedunreviewed

by yujia

Add row numbers beside any Markdown table, give it an editable caption and footnote stored in the note, and copy it as an image or Markdown.

↓ 72 downloadsUpdated 19d agoMIT

Table Tools

Markdown tables in Obsidian have no row numbers, nowhere to put a caption, and no way to hand one to somebody else without reformatting it by hand. Table Tools adds all three, without touching the table's Markdown.

What Table Tools adds to a Markdown table

What it does

Row numbers in the gutter. Every body row is numbered in the margin beside the table. The numbers are drawn outside it, so they renumber themselves as you add and delete rows and never end up in your Markdown.

A caption above and a note below. Click either one to type; press Enter to save or Escape to discard. Both are stored in the note itself, as ordinary Obsidian comments:

%% table-title: Q3 headcount %%

| Team    | People | Budget |
| ------- | ------ | ------ |
| Design  | 4      | 62k    |

%% table-note: excludes contractors %%

The comment lines are hidden in Reading view and in Live Preview, and reappear in source mode or when your cursor is on them. Because they are plain comments, the note stays readable — and the table stays valid Markdown — with the plugin disabled or uninstalled.

Copy the table out. Hovering a table reveals two buttons in its top-right corner:

  • Copy as image renders the table, caption and note to a PNG on your clipboard, using your current theme. The toolbar and any empty placeholders are left out of the shot. If the clipboard is unavailable the PNG is saved into your vault instead.
  • Copy as Markdown puts a clean Markdown table on the clipboard, with the caption as a bold line above it and the note in italics below.

There is also a Process tables on this page command, for the rare table that a plugin or an embed renders after the page has settled.

Installing

From Obsidian: Settings → Community plugins → Browse, search for Table Tools, then Install and Enable.

Manually: download main.js, manifest.json and styles.css from the latest release into <your vault>/.obsidian/plugins/table-tools/, then enable the plugin in Settings.

Notes

  • The interface follows Obsidian's own language setting: Chinese when Obsidian is in Chinese, English otherwise.
  • Editing a caption or note rewrites that one comment line in the note. The table's own rows are never rewritten.
  • If a table cannot be matched back to a line in the note — which can happen inside an embed or a rendered code block — the caption and note are read-only there, and a notice says so rather than writing to the wrong place.

Building it yourself

npm install
npm run build     # bundles src/ into main.js

Releases are built by GitHub Actions from a version tag and published with build provenance, so the main.js in a release can be verified against this source.

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.