Enhaced tables plugin

Hi,
I just wanted to share the plugin I’ve been working on for the last couple of weekends: Enhanced tables. It has been inspired by the amazing DataLoom, but I didn’t like my data to be stored in a JSON file format I don’t have easy access on while on Obsidian. The idea behind Enhanced tables is that markup tables are perfectly fine and well integrated within Obsidian, but they can be improved to add features to make them more “interactive” in view mode:

example

Tables remain just standard markup tables, this is just a way to spice them up!

Enhanced tables adds to tables:

  • Filtering (you can add a default filter and / or define multiple filters that can then be switched with a dropdown control)
  • Sorting (you can add a default sort column, but also switch the column to sort by with a dropdown control)
  • Pagination
  • Formatting for column types like numbers and dates
  • Programmable formatting to add your own custom presentation to selected columns
  • Per-table styling
  • Hide columns
  • Edit the table table data directly in view mode with appropriate controls for the various column types (per instance, a checkbox for boolean columns, a datepicker for date columsn and so on)

Everything is configurable via a Yaml code block. With custom formatters you can do some pretty advanced stuff!

I’ve submitted the plugin to be included in the Community plugins, but you can check it out today here: GitHub - pistacchio/obsidian-enhanced-tables: A plugin for Obsidian to add advanced controls (like sorting and filtering) to standard markup tables

Any feedback appreciated.

Enjoy your enhanced tables!

6 Likes

Looking good! I guess my only concern is it only works for one table in a note according to your github description. Maybe the next update can add a table selector? Also it’s good to be able to add a table caption as that’s something that’s been missing from standard markdown tables since the beggining.

1 Like

Hi Caroline. I guess the description is somehow not clear. Can you please point out what made you think that it only works on a single table per note so that I can rephrase it?

It actually works on all the tables you like! Just define the yaml code block before the table you want to configure and it will apply the enhancements. This means that if you want to enhance multiple tables per page, you can just prepend before each the yaml code.

The plugin api, though, actually works on a single table (and I plan to fix this), but it’s a quite advanced feature that I only exposed as a convenience for plugin developers, but that shouldn’t affect normal day-to-day usage.

It was the plugin APi is was commenting on actually. The video above is rather quick and only shows the YAML for a fraction of a second. I assume that the YAML stuff vanishes once you create it and is replaced with the table? Or not? If it doesn’t then there will be a messy YAML code block in the code aboce each table which i think will hinder the reading of the text as it’s distracting.

The visibility of the configuration code is controlled by the “hide-configuration” property in the yaml configuration itself

1 Like