Markdown Extract Tables
Find every pipe table in a Markdown document and work with each one separately. Each table gets a rendered preview, its Markdown source, row and column counts, and its own Copy and Download buttons, plus Copy All and Download All for the full set. Detection and downloads happen in your browser.
Use Markdown Extract Tables
Input Markdown
Extracted Tables
Read Content
Lift tables out of long Markdown documents
Pipe tables are everywhere in Markdown: API parameter lists, pricing comparisons, changelog matrices, feature grids in READMEs, results tables in research notes. When you need one of those tables somewhere else, finding it in a long file and selecting exactly the right lines is fiddly. Markdown Extract Tables scans your document, finds every pipe table, shows each one as a rendered preview next to its Markdown source, and lets you copy or download each table on its own or all of them together.
How a table is detected
The tool follows the GitHub Flavored Markdown pattern, which needs two lines to start a table:
- A header row: a line containing pipe characters with text between them, such as
| Name | Role |. - A separator row directly underneath, made only of cells with at least three hyphens and optional colons for alignment, such as
| --- | :---: |.
After those two lines, every following line that looks like a table row is added to the table. The table ends at the first blank line or the first line that is not a row. Outer pipes at the start and end of a line are optional, so Name | Role works as well as | Name | Role |.
The separator must have at least two cells, so a single-column table is not detected. Separators with only one or two hyphens per cell, like |-|-|, are also skipped, because each cell needs three.
An example
Suppose a README contains a paragraph, then this table, then more text:
| Plan | Price | Users || :--- | ---: | :---: || Free | $0 | 1 || Team | $12 | 10 |
After pressing Extract you get one card, Table #1, labelled "2 rows · 3 columns". The preview shows a grid with Plan, Price and Users as headings and the two plans beneath. The Markdown source in the card is the four lines above, including the alignment colons, so the table keeps its left, right and centre alignment wherever you paste it. If the README had a second table further down, it would appear as Table #2 with its own buttons, and Download All would put both into one file.
What you see for each table
Every table found gets its own card titled Table #1, Table #2 and so on. Under the title the card shows the number of body rows and columns, for example "4 rows · 3 columns". The row count excludes the header and separator lines, and the column count comes from the header row.
The card body has two parts:
- A preview that draws the table as a real grid, so you can confirm you have the right one at a glance. Cell text is shown as plain text, so Markdown inside cells, such as links or bold, appears as written rather than formatted.
- The Markdown table source exactly as it appears in your document.
Each card has its own Copy and Download buttons. Download saves the table as markdown-table-1.md, markdown-table-2.md and so on, numbered by position.
How to extract tables
- Paste your document into Input Markdown, or press Paste in the header. The footer shows the character count and a "possible tables" estimate based on header and separator pairs.
- Press Extract.
- Check the two status cards. Extraction status says "Tables extracted" or "No tables found", and Extracted tables shows the total.
- Scroll through the table cards and pick the ones you need.
- Use the per-card Copy or Download buttons for single tables.
- Use Copy All or Download All for every table at once. Download All saves
markdown-tables.md, with tables separated by a blank line.
On the input card, Copy Input copies your original text and Clear resets everything. If you edit the input after extracting, the results are cleared so they never go out of sync; press Extract again.
Runs in your browser
All detection, previewing and file creation happen locally with JavaScript. Your Markdown is not sent to this site's server, and downloads are generated in the browser. There is no upload size limit, though extremely large documents depend on your device's memory.
Common jobs this tool handles
- Reusing documentation tables. Copy the parameter table from an API reference into a new page, an issue or a pull request description.
- Splitting a data-heavy report. Pull each results table into its own file for review, or hand them to someone who only needs the numbers.
- Moving tables into spreadsheets. Extract the Markdown, then convert it with a Markdown-to-CSV step or paste it into a sheet and split on the pipe character.
- Auditing table structure. The rows and columns count on each card makes it easy to spot a table with a missing column or a broken separator.
- Collecting comparison grids. Gather every feature comparison table from several product pages into one file.
Getting clean tables out
- Leave a blank line before and after each table in your source. It keeps tables from merging with neighbouring paragraphs.
- Use at least three hyphens in every separator cell.
| --- | --- |is the safe form. - If the "possible tables" figure is higher than the number of cards after extraction, look for a header row whose separator is malformed or has only one column.
- When a table has rows with different cell counts, the preview shows them exactly as they are. Use that to find and fix missing pipes before you reuse the table.
What to watch out for
- Tables inside fenced code blocks are extracted too. The tool does not skip code fences, so a table shown as an example inside
```will appear as a card. Ignore or delete it if you do not need it. - Escaped pipes, written
\|, are treated as column breaks in the preview. The Markdown source in the card is unchanged, but the preview columns will look shifted. - HTML tables written with
<table>tags are not detected. - Grid tables and other non-pipe table syntaxes from Pandoc or reStructuredText are not supported.
Limitations
- Only pipe tables with a header row and a valid separator row are found.
- Single-column tables are not supported.
- Cell content is not parsed for inline Markdown in the preview.
- Output is Markdown only; there is no direct CSV, JSON or Excel export.
- Code fences are not excluded from the scan.
Related tools
To tidy the column widths of a table after extracting it, use the Markdown Table Formatter. To remove tables from a document instead of extracting them, try Markdown Remove Tables.
Frequently Asked Questions
FAQ
Comments (0)
Describe the issue you encountered so we can investigate and improve the tool.