Blank-line-aware paragraph sort
Input is split on blank-line runs (regex `/\n\s*\n/`). Each resulting block is treated as one paragraph regardless of internal line wrapping. Output uses double-newline joining, so your paragraph structure survives the round trip.
The sort uses JavaScript's `localeCompare` with `numeric: true`. This means mixed alpha-numeric paragraph starts (`Paragraph 2`, `Paragraph 10`) sort in human-natural order, not lexicographic (where `10` would come before `2`).
Two options only: Order (A→Z / Z→A) and Case sensitive. No "length" or "numeric-only" or "random" modes - for those, use Sort by length, Sort numeric, or Shuffle.
How to use sort list paragraphs
- 1Paste paragraphs separated by blank lines into the input panel
- 2Pick Order: A→Z (default) or Z→A
- 3Toggle Case sensitive for exact casing comparison
- 4Output emits sorted paragraphs separated by blank lines
- 5Paragraphs without blank-line separators are treated as a single paragraph
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
Blank-line-split paragraph sort. Two options.
Splits on blank-line boundaries
Regex `/\n\s*\n/` detects one or more blank/whitespace-only lines between paragraphs. Single-line-wrapped paragraphs are preserved intact during the sort.
Natural-number ordering
`localeCompare(numeric: true)` means `Para 2` sorts before `Para 10`. Without that flag, lexicographic comparison would put `10` before `2`.
A→Z default, Z→A via Order
Default ascending. Flip Order to descending for reverse alphabetical.
Case-insensitive by default
`apple` and `Apple` sort as equal. Toggle Case sensitive on to separate them (uppercase sorts before lowercase under default locale rules).
Preserves paragraph internals
A multi-line paragraph stays a multi-line paragraph - only the paragraph *order* changes. Internal line wrapping and whitespace within the paragraph is untouched.
Worked example
Three paragraphs separated by blank lines, sorted A→Z by their first characters.
Paragraph three: apples and oranges. Paragraph one: just a starter. Paragraph two: middle chapter.
Paragraph one: just a starter. Paragraph three: apples and oranges. Paragraph two: middle chapter.
Settings reference
How each option shapes the output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Order: A→Z (default) | Ascending sort | `one` / `three` / `two` (lexicographic) |
| Order: Z→A | Descending sort | `two` / `three` / `one` |
| Case sensitive: on | Uppercase vs lowercase is distinct | Would group all uppercase starts before lowercase |
| Case sensitive: off (default) | `Apple` and `apple` sort as equal | Original order preserved for equal-keyed paragraphs (stable sort) |
| No blank lines in input (automatic) | Treated as one paragraph | Output identical to input |