New Plugin: rich table - Merges, styles, inline editing, and more in a fenced code block

Is this project open source? Yes (AGPL-3.0)
Is this project completely free? Yes
Is this project vibe-coded beyond the author’s ability to comprehend how it works? No
Community Directory: Rich Table

Hey everyone :waving_hand:

Native Obsidian tables are plain GFM — no cell merges, no click-to-edit, no status columns. I built Rich Table to fix that. After months of daily use for project tracking I’m happy to share it.

Rich Table renders interactive tables inside a rich-table fenced code block. Everything is stored as plain text in your vault — no database, no proprietary format.

Key features

:shuffle_tracks_button: Cell merging — define merges in YAML, or drag-select cells and click Merge. Overlapping merges auto-expand to a valid bounding box, so you can never create a broken state.

:label: Typed columns — attach a type to a column and values become colored pill badges. Click to switch values from a dropdown. Built-in: task-status (todo / pending / in-progress / done / cancel), priority, boolean, rating, effort, approval, date. Custom types configurable in settings.

:pencil: Inline editing — single-click any cell to edit. Full [[wikilink]] autocomplete with heading (#) and block reference (^) support.

:artist_palette: Cell styles — double-click any cell for a panel: background color, text color, font size with live preview. Also works on drag-selected ranges.

:up_down_arrow: Drag to reorder — drag handles on row left / column top to reorder. Merges and per-cell styles remap automatically.

:pushpin: Title & footer — add a title above and notes below the table, both click-to-edit inline.

Quick example

---
title: Sprint Board
columns:
  - { name: Task, width: 200 }
  - { name: Status, type: task-status }
  - { name: Priority, type: priority, align: center }
merges:
  - A2:A3
styles:
  - { target: "1:1", bold: true, bg: "#e8f0fe" }
footer: "Updated weekly · click any cell to edit"
---
| Task     | Status  | Priority |
| -------- | ------- | -------- |
| Design   | done    | high     |
| Build    | pending | medium   |
| Test     | todo    | low      |

GitHub: GitHub - SdKay/obsidian-rich-table: Rich, interactive tables for Obsidian — with cell merges, inline editing, wikilink autocomplete, typed columns, title & footer, drag-to-reorder, and more · GitHub

Still v0.1.x — bug reports and feedback very welcome. Roadmap in the README (sorting, filtering, conditional formatting, and more coming).

1 Like

Very nice plugin!

I like the idea of table being just a code block with additional info that can be easily removed in case of switching to a different app which makes the data safe and easy to clean up. Well done.

Really glad the design resonates with you! :raising_hands:

To be fully honest though :rofl: — as the plugin has grown and more features piled on top of that original format, the codebase has gotten more complex, and that’s naturally brought a higher chance of edge-case bugs (especially around styles, merged cells, and row/column operations interacting with each other). So I’m actively working on making the foundation more robust and maintainable

Nice plugin, however my table title is off to the right hand side rather than centered. There is very little documentation on the values which can be used in the yaml header. Might be a good idea to document those better. My code block looks like this after a bit of column adjustment.


title: Server Types
columns:

  • name: Model
    width: 71
  • name: Name
    width: 103
  • name: CPU(s)
    width: 164
  • name: Memory Config Max
    width: 171
  • name: Type
    width: 67
  • name: Memory Fitted
    width: 144
  • name: Disks Fitted
    width: 193.19921875
  • name: Total
    width: 84
  • name: Drive Bays
    width: 103
  • name: Cards
    width: 69
  • name: Comment
    width: 117

Model Name CPU(s) Memory Config Max Type Memory Fitted Disks Fitted Total Drive Bays Cards Comment
T320 Elysium 1 of 1 (E5-1410) 6 * 32GB = 192GB DDR3 1 * 16GB = 16GB 4 * 600GB 1200GB 8 HBA
T320 Arcadia 1 of 2 (E5-2407 v2) 6 * 32GB = 192GB DDR3 3 * 4GB = 12GB 6 * 300GB + 2 * 500GB 2800GB 8 HBA Lowest spec
T410 Shambhala 2 of 2 (E5620) 8 * 8GB = 64G DDR3 6 * 4GB = 24GB 0 0 6 HBA
T430 Valhalla 2 of 2 (E5-2630 v4) 12 * 32GB = 384GB DDR4 4 * 16GB = 64GB 4 * 600GB + 4 * 1200GB 7200GB 8 HBA Highest spec
T610 Lemuria 1 of 2 (X5650) 12 * 8GB = 96GB DDR3 3 * 4GB = 12GB 0 0 8 HBA

I test your table on latest version 0.1.10, it’s looks good, Have you tried latest version? Title style config is not support yet~