Plugin: Rich Tables [v1.6.1] - table editing/rendering in markdown editor

Thanks for this excellent plugin, it’s working great on mobile (Android) & desktop (Windows) but unfortunately on desktop it’s incompatible with legacy Markdown. I fear this is a long shot but is it at all possible please to make this plugin compatible with legacy Markdown editor on desktop (Windows) please?

I ask as I use (become reliant upon) several of the functions within Enhancement plugin, which unfortunately requires legacy Markdown editor. I’d love to be able to make use of both Rich Tables & Enhancement together on desktop.

I find that large Markdown tables quickly get very scruffy so I’m currently switching legacy off, using Rich Tables to add/edit tables then switching legacy Markdown back on.

Thanks again.

I probably will not add support for the legacy editor in this plugin, the plugin implementation is heavily tied to codemirror 6 and would likely need an entirely separate implementation to support the legacy (codemirror 5) editor

IIRC though Joplin enhancement does include a codemirror 5 table editor (an old version of Zettlr's table editor) though I haven't tried it

I guessed this would likely be the case but thought I’d ask just in case so thanks for looking & taking the time to answer.

Yes Enhancement has a table option which uses Tab to format the table/add a new row/column. For tables with any lengthy text I find it quickly becomes a bit messy & can become awkward to edit especially when adding or removing colums/rows, but that may be down to the user (that’ll be me then). I’ve found Rich Tables to be extremely useful because of this & thankfully we have the option to toggle the legacy on/off. Cheers

in enhancement there is a setting for "Render markdown table to editable table in markdown editor" which enables a GUI table editor (the zettlr based editor I was remembering):

EDIT: there seems to be some significant limitations though (e.g. doesn't seem to be a way to delete rows/columns, only add them)

v1.5.1

Improvements/Changes

  • Changes to table widget rendering to implement proper DOM reuse and improve performance
  • Replaced toolbar edit as markdown button with a "source mode" toggle that disables all table rendering (until it's toggled off).
  • Source mode is now enabled while joplin search in note panel is open for more reliable search/replace behavior.

Fixes

  • Fixed race conditions when rapidly switching table cells/creating rows
  • Fixed flickering table widgets when backspacing text on mobile
  • Fixed video elements exceeding table cell size in rendered markdown (when video plugin is enabled)
  • Fixed flickering video elements due to DOM teardown when making edits outside of a table that contains a video element (this can still happen, but only if you make changes to the table containing the video)
  • Fixed empty rows (where cursor isn't in any cell) having less height than other rows

v1.5.2 - v1.5.3

  • Fix: prevent unnecessary renderMarkup requests for plain text
  • Fix: don't render markup for block quotes/numbered lists (which don't render correctly in markdown tables)
  • Removed the width lock when clicking on table cells, other changes have stabilized the scrolling enough that allowing the cell to expand no longer causes huge scroll jumps, and the width lock made creating new tables kind of annoying (text would wrap prematurely and then expand when clicking off of the cell)

v1.5.4

Improvements

  • Improved table parsing performance

Fixes

  • When the table cell editor is open, detect if full document has been replaced (e.g. joplin sync updates) and automatically close the cell editor and rebuild all tables to prevent stale document state.

v1.5.6

  • Fix: issue where cursor focus could switch to editor when typing in joplin searchbar when the rich text editor is active, due to editor.execCommand being called on note switch
  • Fix: text entered immediately after table (with no empty line in between) being invisible

v1.5.7

  • Improve word break behavior so that it doesn't break short words in column headers/cells, and behaves more consistently with markdown viewer table styling

v1.5.8

Improvements

  • Add support for the Youtube embed functionality that was added in Joplin 3.6.1

2 Likes

v1.6.0

Improvements

Improved floating toolbar behavior so that the toolbar is always visible in the viewport when editing a table (similar to how the toolbar works in the TinyMCE editor). This makes it easier to edit large tables (especially on mobile).

If either the top or bottom of the table is visible in the viewport, it will appear above or below the table as it did previously (so it doesn't obscure content in the table).

When the top/bottom of the table aren't visible (e.g. as you scroll down/up), the toolbar will be pinned to the top or bottom of the viewport.

3 Likes

Hi, another feature request regarding lists in tables:

I use regularly small lists inside tables. The current rendering for a table like

| lists in table | examples |
| --- | --- |
| - single element | - multiple<br>- elements |
| 1. ordered<br>2. list | - [ ] task<br>- [x] list |

is inconsistent:

It would be nice to either render no lists at all (like it's done at the Markdown viewer) or render all elements of the lists. I would prefer the second option, since it would look better, but it would be a deviation from the CommonMark specification.

1 Like

This should be fixed in v1.6.1: Release v1.6.1 · bwat47/joplin-rich-tables

The fix that I implemented is to prevent rendering of lists in table cells, I don't think it's possible to render them properly (at least not with CommonMark/GFM tables) because markdown-it will only render lists properly if there are newlines between the list items (this is why only the first list marker is rendered in your example) and newlines aren't allowed in GFM table cells

Simple lists will still be usable (using <br> between list items like your example), the list markers are just escaped at the beginning of the table cell to prevent renderMarkup from trying to render the list:

1 Like