Markdown to HTML
Convert Markdown to HTML in your browser with live preview.
Paste any tabular data — CSV from a spreadsheet, tab-separated from a database export, an existing messy Markdown table — and get a clean, aligned Markdown table. The tool auto-detects the separator, lets you set per-column alignment, and re-renders on every keystroke. Output is ready to drop into a README, a GitHub issue, a docs page, or anywhere else Markdown is rendered.
Markdown tables aren't part of the original Markdown spec — they were added by GitHub Flavored Markdown (GFM) in 2014 and have since been adopted by every major Markdown renderer in active use: GitHub, GitLab, Bitbucket, Reddit, Discourse, MkDocs, Docusaurus, Hugo, Jekyll, Obsidian, and the standard CommonMark extensions. The syntax is simple: pipes separate columns, hyphens form a separator row, and colons in the separator row control alignment.
The most common pain point is producing tables that render correctly when your data comes from somewhere else — a database query result, a spreadsheet export, a CSV from an API. Hand-converting CSV to Markdown is tedious and easy to get wrong on edge cases like commas inside quoted fields, pipes inside cells, or inconsistent column counts per row. This tool handles all of those automatically.
Tables in Markdown are best for genuinely tabular data — comparison matrices, parameter references, lookup tables, status grids. For more complex layouts (cells with multiple paragraphs, nested lists, images), HTML <table> elements are still allowed inside Markdown and render correctly almost everywhere. Don't try to force everything into a Markdown table; reach for HTML or a different structure when the data doesn't fit.
|---|---| are recognized and stripped so the data flows through cleanly with the alignment markers preserved or replaced by your chosen alignment.:--- is left-aligned, :---: is center, ---: is right, and plain --- is the renderer's default (usually left). This tool generates the appropriate separator based on your per-column alignment selectors and lets you change them after generating without re-pasting the data.| inside a cell breaks the table because the renderer interprets it as a column separator. This tool escapes pipes inside cells as \|, which Markdown renderers display as a literal pipe. Other characters with special meaning in Markdown (asterisk, underscore, brackets) pass through unchanged — Markdown rendering inside cells is normal table behavior. Newlines inside a cell are converted to <br> since GFM tables don't support multi-line cells natively.|a|b|c| and | a | b | c | both produce identical rendered output. This tool pads cells to make the source readable, but if your data has very wide cells the source will still look uneven. The rendered table will be aligned correctly regardless. If you want source-level alignment with mixed-width cells, paste the output through a Markdown formatter or your editor's auto-format.