CSV to Markdown Converter

READMEs, pull request descriptions and documentation sites render Markdown tables beautifully, if you can be bothered to hand-write the pipes and dashes. This converter reads a CSV, takes the first row as the header, and emits a GitHub Flavored Markdown table with the correct separator row. Every cell comes surrounded by | delimiters, ready to paste into a README or pull request description.

How the table is built

  1. 1

    Paste the CSV

    Defaults to a three-column sample; swap it for your own data.

  2. 2

    Choose the delimiter

    Comma by default. Choose tab, semicolon or pipe from the list to match your data.

  3. 3

    Row 1 is the header

    The first row is emitted as the Markdown header, followed by the required `| --- | --- |` separator line.

  4. 4

    Rows padded to width

    If a data row has fewer cells than the header, the converter pads with empty strings to keep the table rectangular.

Rendering, alignment and where it will and will not work

GitHub Flavored Markdown (GFM) tables are widely supported but not universal. Knowing where they render is the difference between a crisp README and a wall of pipes.

Supported in

  • GitHub, GitLab, Bitbucket pull requests and wikis
  • Most static site generators (Docusaurus, VitePress, MkDocs Material)
  • VS Code Markdown preview
  • Notion (via paste-as-markdown)

Not supported in

  • CommonMark without the GFM extension
  • Reddit (uses its own subset)
  • Some legacy wiki engines (DokuWiki, MoinMoin)

Column alignment

GFM tables support left, center and right alignment via colons in the separator row. This converter emits plain --- separators; if you need alignment, post-process:

Syntax Effect
:--- Left-align
:---: Center-align
---: Right-align

Find-and-replace the separator line with | :--- | :---: | ---: | matching the columns you want to tilt.

Quoting characters in Markdown cells

  • Pipe characters (|) inside a cell must be escaped as \\| to avoid splitting the cell. The converter does not escape them automatically, so pre-clean if your data contains pipes.
  • Newlines inside a cell break GFM rendering. Replace them with <br> before conversion if you want soft line breaks inside a cell.
  • Asterisks, underscores and backticks pass through; they get interpreted as Markdown emphasis or code. Escape with a leading backslash if you want them literal.

Frequently Asked Questions

Not by default, the separator row is plain ---. Replace it with :---, :---: or ---: after conversion to pin the column left, center or right.

Escape them with a backslash before conversion, turning | into \|. Otherwise the Markdown renderer treats them as column separators and breaks the table.

GFM tables render on GitHub, GitLab, most static site generators and VS Code. They do not render on plain CommonMark, Reddit or some legacy wikis without a plugin.

Yes, the CSV is sent to our server so the converter can build the table. It is not stored and it is not added to the page link.

Related Tools