Zero Signup ToolsFree browser tools

Text Tools

Markdown Table Sorter

Sort rows in any Markdown pipe table by the column you pick. Auto type detection for numbers, dates, and natural order. Multi-table support.

Paste

Markdown with one or more pipe tables

Empty cells

Where empty values land in the sorted result.

Table 1

Lines 5 to 11. 5 rows, 4 columns.

RegionTextRepsNumberRevenue ($)NumberLast closeDate

Sort by

Mode

Direction

Then by (optional)

Table 2

Lines 15 to 22. 6 rows, 3 columns.

PackageTextVersionTextNotesText

Sort by

Mode

Direction

Then by (optional)

Output

Sorted 2 tables. Non-table content is preserved verbatim.

# Quarterly sales report

A quick summary table that should be sorted by revenue (descending) before sharing with the team.

| Region        | Reps | Revenue ($) | Last close |
| ------------- | ---- | ----------- | ---------- |
| APAC          | 14   | 1,045,900   | 2026-04-15 |
| EMEA          | 18   | 890,250     | 2026-04-18 |
| LATAM         | 9    | 312,000     | 2026-04-09 |
| North America | 24   | 1,250,400   | 2026-04-12 |
| Other         | 3    |             | 2026-03-30 |

Below is a release matrix to sort by version (natural order).

| Package     | Version    | Notes                   |
| ----------- | ---------- | ----------------------- |
| api-gateway | 2.10.0     | Adds rate-limit headers |
| api-gateway | 2.9.5      | Patch: header parsing   |
| api-gateway | 2.9.10     | Patch: retry backoff    |
| ui-kit      | 1.2.0      | New Button variants     |
| ui-kit      | 1.2.0-rc.1 | Release candidate       |
| ui-kit      | 1.10.0     | Adds Table primitive    |

```md
| Inside a fenced code block | this should not be sorted |
|---------------------------|---------------------------|
| Z first                   | foo                       |
| A second                  | bar                       |
```

How to use

  1. Paste your Markdown into the input area. Click Load sample to see a multi-table example.
  2. Each detected table appears as a control row. Pick the Sort by column, the Mode (Auto, Text, Natural, Numeric, or Date), and Ascending or Descending.
  3. Optionally choose a Then by column as a tie-breaker for rows with equal primary values.
  4. Use the global toggles to enable Case-insensitive text sort and choose whether empty cells land Last or First.
  5. The Output panel updates live with the reordered tables; non-table content and fenced code blocks are preserved verbatim.
  6. Click Copy output to grab the sorted Markdown for your README, release notes, ticket, or pull request.

About this tool

Markdown Table Sorter reorders the data rows of every GitHub-Flavored Markdown pipe table in your input by the column you pick, leaving the header row, the alignment row, and everything outside the table untouched. Paste a README, a release notes file, an issue body, or any document that contains one or more `|---|---|`-style tables and the tool auto-detects each table, infers a likely type per column (Number, Date, or Text), and offers a per-table control strip so a sales report can sort by revenue descending while a release matrix in the same document sorts by version using natural order. Five sort modes are available: Auto follows the detected column type, Text uses a locale-aware Intl.Collator, Natural treats embedded numbers as numbers so file2 lands before file10 and v1.2.10 lands after v1.2.5, Numeric parses currency-formatted values like $1,250.40 and finance-style negatives like (250.00), and Date understands ISO yyyy-mm-dd, slash dates like 04/12/2026, and common variants. Each table has its own primary sort column and an optional secondary tie-breaker column, so equal revenue rows can be ordered by reps and equal versions can be ordered by date without writing a script. Global options control case sensitivity and where empty cells land (first or last), and the renderer preserves the original leading and trailing pipe style, keeps the alignment row intact, and re-pads cells with width-aware spacing that handles CJK and emoji so the source view stays readable. Backslash-escaped pipes (\|) and backtick code spans inside cells are respected during parsing so pipes there are not mistaken for separators. Lines inside fenced code blocks (```) are passed through verbatim, so a sample table inside a code fence is never resorted. Useful for README and docs authors who keep a sorted feature matrix, release notes writers who maintain a chronological changelog, product managers triaging a Markdown task list, support engineers reordering a status table for a customer report, and anyone who would rather not export a Markdown table to Excel just to sort it. Everything runs in your browser using native string operations and Intl.Collator, so the content you paste stays on your device.

Free to use. Works in your browser. No signup, no login.

Related tools

You may also like

All tools
All toolsText Tools