Table Enhancements

unlisted

by Martín M.

Per-table enhancements: hover row highlight and clickable checkboxes, opt-in via a marker comment.

Updated 1mo agoMIT
View on GitHub

Table Enhancements

An Obsidian plugin that adds opt-in, per-table enhancements to markdown tables — hover row highlighting and clickable checkboxes — enabled with a marker comment on the line above each table. Tables without a marker are left untouched. Reading view works out of the box; Live Preview support is experimental and opt-in (enable it in settings).

Usage

Add a marker comment on the line directly above a table, with a blank line between the marker and the table. The marker names which features apply:

%% table-enhance hover checkbox %%

| Task        | Done |
| ----------- | ---- |
| Ship plugin | [ ]  |
| Write docs  | [x]  |

Clicking a control rewrites the token in the markdown source.

Features

TokenEffectCell syntax
hoverHighlight the row under the cursor— (whole table)
checkbox2-state clickable checkbox[ ] / [x]
tristate-box3-state box, cycles on click[ ] / [/] / [x]
emojiN-state emoji, cycles on clickone of the emoji set

Emoji cycles (any number of states)

emoji cycles a cell through an ordered emoji set, so you can have as many states as you like:

  • %% table-enhance emoji %% — uses the default set from settings (🔴 🟡 🟢, configurable).
  • %% table-enhance emoji:⬜,🟨,✅ %% — a custom per-table set that overrides the default (comma-separated; commas keep compound emojis intact).

Example with four states:

%% table-enhance emoji:⬜,🟨,🟧,✅ %%

| Task   | Status |
| ------ | ------ |
| Design | ⬜     |
| Build  | 🟧     |

Notes

  • checkbox and tristate-box share the [ ] / [x] tokens, so they are mutually exclusive on the same table. emoji uses its own tokens and can be combined with either.
  • The 2-state checkbox and the 3-state box render as the same native checkbox (the box's middle state uses the checkbox's indeterminate state).
  • Checkbox cells should be a token optionally followed by plain text (e.g. [ ] Buy milk).

Settings

SettingDefaultDescription
Default emoji cycle🔴 🟡 🟢Emojis cycled by a bare emoji marker, in order. A table can override this inline with emoji:a,b,c.
Live Preview support (experimental)OffAlso enhance tables while editing in Live Preview. Relies on Obsidian's internal table rendering and may break with future Obsidian updates; Reading view works regardless.

Requirements

  • Obsidian v1.4.0 or later

Installation

From Community Plugins

  1. Open Settings → Community plugins → Browse
  2. Search for "Table Enhancements"
  3. Click Install, then Enable

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create a folder .obsidian/plugins/table-enhancements/ in your vault
  3. Copy the three files into that folder
  4. Enable the plugin in Settings → Community plugins

Development

pnpm install
pnpm run dev      # watch mode
pnpm run build    # production build
pnpm run lint     # check with biome
pnpm run lint:fix # auto-fix

To test locally, symlink the project folder into your vault:

ln -s /path/to/obsidian-table-enhancements /path/to/vault/.obsidian/plugins/table-enhancements

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.