{{ summaryTitle }}
{{ summaryValue }}

{{ summaryLine }}

Delimiter {{ resultsReady ? resolvedDelimiterSummary : '—' }} Headers {{ resultsReady ? headerSourceLabel : '—' }} Format {{ markdown_format === 'readable' ? 'Readable' : 'Compact' }}
{{ summaryAnnouncement }}
Markdown table source and formatting controls
Quoted fields and embedded line breaks are supported for delimited text.
{{ fileStatus || 'Drop CSV, TSV, TXT, or MD onto the textarea.' }}
Auto resolves the delimiter from consistent separators; pin a mode when the source is ambiguous.
Generated headers use Column 1, Column 2, and so on.
Existing Markdown separator markers are preserved when alignment stays on Auto.
Both formats render the same table in GitHub-flavored Markdown.
Keep this on for code, option lists, and paths that may contain pipes.
{{ escape_pipes ? 'On' : 'Off' }}
Recommended for spreadsheet exports; turn off only when edge spaces are meaningful.
{{ trim_cells ? 'On' : 'Off' }}
Empty cells inside non-empty rows are still preserved.
{{ skip_empty_rows ? 'On' : 'Off' }}
The neutral empty default leaves the selected alignment mode unchanged.
The default of 200 changes presentation only, not the generated result.
rows
{{ textExportStatus }}
{{ markdownOutput }}
{{ chartExportStatus }}

The chart renderer is unavailable. Column values remain available in Column audit.

Row{{ header.label }}Copy
{{ row.index }}{{ cell }}
{{ parsedRowsExportStatus }}
ColumnHeaderAlignmentTypeFilledMax widthCopy
{{ row.index }}{{ row.header }}{{ row.alignment }}{{ row.type }}{{ row.nonEmpty }} / {{ result.values.row_count }} ({{ formatPercent(row.fillPercent) }}){{ row.maxWidth }}
{{ columnAuditExportStatus }}

Introduction:

Markdown tables are plain-text grids for facts that need to stay readable in both source form and rendered documents. They are common in README files, issue reports, release notes, runbooks, and pull requests because a reviewer can inspect every row in a text diff without opening a spreadsheet.

A table needs more structure than a row of values separated by spaces. Pipes divide cells, the first row supplies column headings, and a delimiter row of hyphens tells a GitHub Flavored Markdown renderer that the block is a table. Colons on that delimiter row set left, center, or right alignment. Visual padding is optional, so a compact table and a carefully spaced table can render the same way.

Header row
Names the columns and gives the table its first rendered row.
Delimiter row
Uses at least three hyphens per cell, with optional colons for alignment.
Literal pipe
A pipe that belongs inside a value and must be escaped as \| so it is not read as a cell boundary.
Ragged row
A row with fewer or more cells than the widest row, often caused by a missing delimiter or an unquoted value.

Delimited source text can be less predictable than it looks. A comma inside a quoted product name is data, while an unquoted comma may start a new cell. Embedded line breaks can belong to a quoted field. Pipe-delimited text adds another ambiguity because the same character is also Markdown table syntax. Checking the parsed rows before publishing prevents shifted columns and accidental truncation.

Alignment improves scanning but does not change the underlying values. Text is usually left-aligned, numbers are often right-aligned, and short states may be centered. Automatic guesses are useful for a first pass, yet mixed values such as 12%, N/A, and pending can make a column look less numeric than intended.

How to Use This Tool:

Begin with the source format you actually have, then verify the parsed structure before copying the Markdown.

  1. Paste the rows into Source table or load a local text file. Quoted fields and embedded line breaks are accepted.
  2. Leave Source delimiter on Auto when the separators are consistent. Pin comma, tab, semicolon, or pipe when the detected delimiter is ambiguous.
  3. Choose how the header is handled, then set a general alignment or add overrides such as Status:center or 5:right.
  4. Review Parsed rows and Column audit. Fix the source when rows were padded, the wrong header was chosen, or a column type does not match the intended data.
  5. Copy the final Markdown after checking literal pipes and line breaks in values that contain code, paths, or option lists.

Interpreting Results:

The rendered table depends on the generated header, delimiter markers, and consistent cell boundaries. Read the warning list before trusting the preview. An ambiguous delimiter, a generated header, an unclosed quoted field, or padded ragged rows can all produce valid-looking Markdown that represents the source incorrectly.

Column audit reports each column's inferred type, alignment, fill percentage, and maximum source width. These are diagnostics rather than data validation. A column labeled Number means its non-empty cells look numeric; it does not prove that the values use the right units or belong in the expected range.

Technical Details:

A GitHub Flavored Markdown table is recognized by a header row followed immediately by a delimiter row. Each delimiter cell contains at least three hyphens. A leading colon requests left alignment, a trailing colon requests right alignment, and colons on both sides request centered content.

Transformation Core

The conversion follows a deterministic sequence, so the same source and settings produce the same Markdown.

  1. Normalize line endings and select the requested delimiter. Auto detection scores comma, tab, semicolon, and pipe counts across the first 12 non-empty lines, favoring separators that appear consistently.
  2. Parse rows while keeping delimiters and line breaks inside quoted fields. Doubled quotation marks inside a quoted field become one literal quotation mark.
  3. Remove optional edge cells from pipe tables, apply trimming and empty-row policy, and pad shorter rows to the widest row.
  4. Resolve the header. Auto mode accepts a Markdown delimiter row or a first row that looks like unique, non-empty labels; generated headers use Column 1, Column 2, and so on.
  5. Infer column types and alignment, apply header-name or one-based column overrides, escape cell content, and write either compact or padded Markdown.
Automatic type and alignment rules for Markdown table columns.
Evidence in non-empty cellsReported typeAuto alignment
Every value is numeric-like after removing dollar, comma, and percent marksNumberRight
At least 66% of values are numeric-likeMostly numberRight
Every value matches a supported date-time shapeDateLeft
Every value is true/false, yes/no, or y/nBooleanLeft
No non-empty valuesEmptyLeft
Anything elseTextLeft

Existing Markdown alignment markers are preserved when the second row is a complete separator row and alignment remains automatic. Newlines inside a cell become <br>. When pipe escaping is enabled, every literal pipe becomes \|. Readable mode pads cells according to visible width, while compact mode removes that padding without changing the rendered table.

Limits and boundary rules

  • Source text is limited to 4 MiB, 100,000 data rows plus one possible header row, and 200 columns.
  • Alignment rules are limited to 4,000 characters. Unrecognized rules are ignored rather than treated as errors.
  • The preview limit ranges from 10 through 1,000 rows and changes only the preview, not the generated Markdown.
  • An unclosed quoted field keeps the remaining text in that cell and produces a warning.

Worked Examples:

Numeric column with a literal pipe

A comma-delimited inventory has headers Item, State, and Count. One state reads Ready | verified. Auto alignment places Count on the right, while pipe escaping keeps the state inside one cell as Ready \| verified.

Missing cell in one row

A four-column source contains one row with only three cells. The shorter row is padded with an empty fourth cell and the result reports a ragged-row warning. Checking Parsed rows reveals whether the blank is intentional or a delimiter is missing.

FAQ:

Why did the first row become data?

Auto header detection is conservative when the first row is empty, duplicated, or mostly numeric. Choose First row when it is definitely a header, or choose generated headers when every row is data.

Does readable spacing change the rendered table?

No. Readable and compact output use the same pipes, delimiter markers, alignments, and values. Readable mode only adds plain-text padding for easier source review.

References: