What is a Markdown Table?
A Markdown table is a lightweight way to represent tabular data in plain text. Tables are built using pipes (|) to separate columns and hyphens (-) to create the separator between the header and body rows. The syntax is part of GitHub Flavored Markdown (GFM) and is supported by virtually every modern Markdown renderer.
Markdown tables are widely used in README files, documentation, wikis, blog posts, and issue trackers. Unlike HTML tables, Markdown tables are human-readable even in their raw form, making them ideal for version-controlled documents.
Markdown Table Syntax Reference
Every Markdown table consists of three parts: a header row, a separator row, and one or more data rows. Here is the basic structure:
| Column 1 | Column 2 | Column 3 | | -------- | -------- | -------- | | cell 1 | cell 2 | cell 3 | | cell 4 | cell 5 | cell 6 |
The header row defines the column names. The separator row is required and must contain at least three hyphens per column. Data rows follow the same pipe-delimited format.
Column Alignment Options
You can control the text alignment of each column by adding colons to the separator row:
| Alignment | Syntax | Example |
|---|---|---|
| Left (default) | :--- | | :--- | |
| Center | :---: | | :---: | |
| Right | ---: | | ---: | |
Tips for GitHub, GitLab, and Other Platforms
GitHub Flavored Markdown
GitHub supports pipe tables in READMEs, issues, PRs, wikis, and comments. Tables auto-render with styled headers and zebra-striped rows.
GitLab Markdown
GitLab supports the same pipe table syntax. Tables work in merge requests, issues, wikis, and the built-in code editor.
Obsidian and Note Apps
Obsidian, Notion, Typora, and other Markdown editors support pipe tables. Some add live preview and table editing shortcuts.
Static Site Generators
Jekyll, Hugo, Gatsby, Docusaurus, and MkDocs all support Markdown tables in content files. Tables are rendered as HTML during the build step.
Keep Cells Short
Long cell values can make raw Markdown hard to read. If a cell exceeds 40 characters, consider using a description list or nested content instead.
Escape Pipes in Content
If your cell content contains a literal pipe character, escape it with a backslash (\|). Otherwise, the renderer will interpret it as a column separator.
Frequently Asked Questions
A Markdown table is a way to display tabular data in plain text using pipes (|) and hyphens (-). It is supported by GitHub, GitLab, Bitbucket, Reddit, Stack Overflow, and most Markdown renderers. The first row is always treated as the header, followed by a separator row that defines column alignment.
Column alignment is controlled by the separator row. Use :--- for left-aligned (default), :---: for center-aligned, and ---: for right-aligned. This generator lets you click a column header to cycle through alignment options without editing syntax manually.
Yes. Paste your comma-separated, tab-separated, or semicolon-separated data into the CSV import textarea and click the Import button. The tool automatically detects common delimiters and converts the data into a Markdown table.
There is no hard limit. Because everything runs in your browser, extremely large tables (thousands of cells) may slow down rendering. For typical documentation tables with dozens of rows, performance is instant.
Yes. This tool is 100% client-side. Your data never leaves your browser — nothing is uploaded to any server, stored, or tracked. Close the tab and it is gone.
Yes. GitHub Flavored Markdown (GFM) fully supports pipe tables with alignment. Tables render in READMEs, issues, pull requests, wikis, and comments. GitLab, Bitbucket, and most documentation platforms also support the same syntax.
Compact mode uses shorter alignment markers (e.g., :-: instead of :---:) to produce more concise Markdown output. The rendered table looks identical — compact mode only affects the raw Markdown source size.
Absolutely. The Markdown table syntax generated by this tool is compatible with GitHub, GitLab, Bitbucket, Jira, Notion, Obsidian, Jekyll, Hugo, and virtually every platform that supports Markdown.