Skip to main content

Free Markdown Table Generator

Visually edit Markdown tables with per-column alignment. Import from CSV or TSV, copy GitHub-flavored Markdown output.

Works offline once loaded
Import from CSV, TSV, or Markdown
Preview
NameEmailRole
Alicealice@example.comAdmin
Bobbob@example.comEditor
Carolcarol@example.comViewer
| Name  | Email             |  Role  |
| :---- | :---------------- | :----: |
| Alice | alice@example.com | Admin  |
| Bob   | bob@example.com   | Editor |
| Carol | carol@example.com | Viewer |

Common uses

  • Build Tables for GitHub README filesGitHub renders Markdown tables natively. Build feature comparison tables, API references, or roadmaps visually.
  • API and Reference Documentation TablesBuild parameter tables, status code references, and field-definition tables for API docs.
  • Build Tables in Obsidian / Notion / LogseqMarkdown-first note-taking apps all support tables. Build them faster here than in plain text.
  • Add Tables to Blog PostsPricing comparisons, feature matrices, and tutorial reference tables β€” Markdown is the lowest-friction way to add them.
  • Convert CSV to Markdown TablePaste CSV from a spreadsheet, get a Markdown table ready to paste into docs or notes.

How It Works

This tool is a fully client-side Markdown table editor built on hand-written JavaScript β€” no third-party table library involved. It generates GitHub Flavored Markdown pipe-table syntax directly in the browser, with live column-width padding and per-column alignment markers, and can also export the same data as HTML, CSV, JIRA wiki markup, or reStructuredText grid tables.

  1. 1
    Edit cells in the visual grid
    Every header and cell is an editable input. As you type, React state updates trigger a useMemo call that re-runs the generator immediately, so the output panel refreshes on each keystroke with no debounce delay.
  2. 2
    Generator pads and escapes GFM syntax
    The hand-written generateMarkdown function measures every column's maximum content width, pads each cell with spaces for alignment, produces the separator row with :--- / ---: / :---: markers, and escapes literal pipe characters as \| and newlines as br element so the table stays valid inside any Markdown renderer.
  3. 3
    Import CSV, TSV, or an existing Markdown table
    Pasting into the import box triggers either a hand-written RFC 4180 CSV/TSV parser (lib/csv.ts) or a custom Markdown table parser that splits rows on unescaped pipes and reads alignment from the separator row, letting you round-trip an existing table back into the editor.
  4. 4
    Copy in the format you need
    Switching the output format tab re-runs the corresponding generator (HTML with style attributes, RFC 4180 CSV, JIRA wiki-markup with || headers, or reStructuredText grid tables with +---+ borders) and the Copy button writes the result to the clipboard via the standard navigator.clipboard API.

Related Tools

Frequently Asked Questions