Markdown table supports a syntax where first columns don’t start with a pipe (and last columns don’t end with one).
This is a valid table
icon | description | content | -|-|-| :discourse2: | **Summary** | **Discourse OpenID Connect** allows an OpenID Connect provider to be used as an authentication provider for Discourse. :hammer_and_wrench: | **Repository Link** | <https://github.com/discourse/discourse-openid-connect> :open_book: | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157)
It renders as:
|Summary||Discourse OpenID Connect allows an OpenID Connect provider to be used as an authentication provider for Discourse.|
|Install Guide||How to install plugins in Discourse|
Editing and saving the table (without changing data) with the table builder duplicates every row that doesn’t have a leading pipe:
If headers miss a leading pipe, editing and saving duplicates the header:
If headers and the separator miss a leading pipe, it duplicates the header and the separator:
If all rows but the header miss a leading pipe, editing and saving duplicates everything but the header
If every row miss a leading pipe, saving the table doesn’t work and generates a JS error:
Cannot read properties of null (reading 'length').
The default table from the topic template in plugin didn’t use leading pipes, so I modified it to add the pipes and prevent potential errors.
To sum it up:
table rows without leading pipes are valid markdown syntax
table builder doesn’t like table rows without leading pipes