Arkounay20 downloadsTurns box-drawing and ASCII art tables from terminal output into real Markdown tables when you paste them, rejoining cells the terminal wrapped over several lines.
Obsidian plugin that turns box-drawing / ASCII art tables into real Markdown tables the moment you paste them.
Paste this (terminal output, Claude Code, mysql, psql, rich, comfy-table, tabulate, ...):
┌──────────────────────────────┬───────────────────────────────────────────────┐
│ Route │ Notes │
├──────────────────────────────┼───────────────────────────────────────────────┤
│ GET /email-deliveries │ paginated list; search + search_scope, types, │
│ │ statuses, engagement, export file name │
├──────────────────────────────┼───────────────────────────────────────────────┤
│ GET /email-deliveries/types │ types present in the caller's scope │
└──────────────────────────────┴───────────────────────────────────────────────┘
and get this in the note:
| Route | Notes |
| --- | --- |
| GET /email-deliveries | paginated list; search + search_scope, types, statuses, engagement, export file name |
| GET /email-deliveries/types | types present in the caller's scope |
No build step, the plugin is plain JavaScript.
./install.sh ~/path/to/vault
Then in Obsidian: Settings, Community plugins, Installed plugins, enable Paste ASCII Table. If it does not show up, use the reload icon next to Installed plugins, Obsidian only scans the plugins folder at startup.
+---+ ASCII borders and border-less psql output.| inside a cell is escaped so it cannot break the table.Both work on text already in a note:
| Setting | Default | What it does |
|---|---|---|
| Convert on paste | on | Turn off to use only the commands. |
| Wrapped cell handling | Smart | Smart rebuilds the original sentence, Always join with a space never glues words together, Keep the line break as <br> preserves genuinely multi-line cells. |
| Escape pipes | on | Escapes | characters found inside cells. |
| Detect column alignment | on | Writes ---: / :---: when the padding shows the column was right aligned or centred. |
| Pad columns | off | Aligns the pipes in the produced Markdown. Off keeps wide tables readable. |
All three come from the same design choice: columns are found by counting delimiters per line rather than by taking the delimiter offsets from the border line. Deriving the column geometry from the border would lift all of them.
a | b under a ---+--- rule) is not detected, because one | per line is counted the same as prose. Three or more columns work, as does any table with outer borders.| in a +---+ style table is mangled: | is both delimiter and content there, so the row is read as having extra columns and the table is split in two. Box-drawing tables are unaffected, a | in their cells stays content.The converter is pure JavaScript with no Obsidian dependency, so it runs under plain node:
npm test