Damien Barrett75 downloadsConvert heading-based documents to Markdown tables and back, and transpose rows and columns.
Convert heading-based Markdown documents to Markdown tables and back. The plugin transforms structural information into tabular form, making it easy to switch between hierarchical and tabular representations of the same data.
The plugin converts between two formats for the same data:
Document format (heading-based structure):
# Table Title
## Row 1 Title
### Column A Title
A1 text.
### Column B Title
B1 text.
## Row 2 Title
### Column A Title
A2 text.
### Column B Title
B2 text.
Table format (Markdown table):
| Table Title | Column A Title | Column B Title |
| --- | --- | --- |
| Row 1 Title | A1 text. | B1 text. |
| Row 2 Title | A2 text. | B2 text. |
The document format uses headings to define structure: the title (#), row titles (##), and column titles (###), with content beneath column headings forming table cells.
Three commands are available from the command palette:
Both convert commands automatically detect whether the input is a document or a table and convert it to the other format.
None of the three commands (or their menu items) are offered for one of the plugin's own generated notes — a backup (*.BAK.md) or an error note (*.errors.md) — since converting or transposing those doesn't make sense.
The same actions are available from the right-click menu:
Transposing the table above yields the equivalent of:
| Table Title | Row 1 Title | Row 2 Title |
| --- | --- | --- |
| Column A Title | A1 text. | A2 text. |
| Column B Title | B1 text. | B2 text. |
The title stays the same; original column titles become row titles (ordered by first occurrence) and original row titles become column titles (in their original order). Transposing a document works the same way, in document form. Transposing a note whose title would then equal one of the new column titles (an original row title) is rejected, since titles are never renamed to avoid the conflict.
Backup location — where to save a copy of the note before converting it:
Note.BAK.md file next to the source note (for Note.md).Projects/Notes.md backs up to Table Converter backups/Projects/Notes.BAK.md), so notes with the same name in different folders don't collide. Folders are created automatically if missing.Error reporting — how conversion errors are reported when validation fails:
.errors.md file next to the source note, as in earlier versions.Either way, a stale error note from a previous failed conversion is deleted automatically on the next successful conversion.
Once the plugin is listed in the community plugins, you can install it from within Obsidian.
For manual installation: download main.js and manifest.json from the latest release and place them in <vault>/.obsidian/plugins/table-converter/.
You can also use BRAT (Beta Reviewers Auto-update Tool) to install and auto-update the plugin from its GitHub releases.
Install dependencies:
npm install
Start the development server:
npm run dev
Build for production:
npm run build
Run tests:
npm test
To release a new version:
npm version patch|minor|major
git push --follow-tags
The CI/CD pipeline will automatically build and publish a GitHub release.
MIT