Enumerate paragraphs

Enumerate paragraphs by prefixing each with a counter. A paragraph is one or more consecutive non-blank lines; only the first line of each paragraph gets the counter. Multi-line paragraphs are treated as one paragraph - they do NOT get one counter per wrapped line. Blank lines between paragraphs pass through with their exact spacing.

Input
Ready
Output
Live

One counter per paragraph, not one per line

A paragraph is one or more consecutive non-blank lines, separated from the next by a blank line (matching the `split(/\n\s*\n/)` convention used by the other paragraph-aware tools on this site). The counter is prefixed only to the FIRST line of each paragraph, so a paragraph that wraps across three lines gets one counter, not three.

Blank-line spacing is preserved exactly as you wrote it. Two blank lines between paragraphs stay two blank lines; one stays one. Only the first line of each paragraph is rewritten. Inner wrapped lines and the blank-line separators pass through untouched.

Three styles: Numeric for standard numbering, Roman for legal/academic convention, Letters for short lists (up to 26 before wrapping to `AA`). Start at supports continuing numbering across documents. Reverse counts down from the final paragraph. If you want one counter per line instead of per paragraph, use Add counters.

How to use enumerate paragraphs

  1. 1Separate your paragraphs with blank lines
  2. 2Paste into the input panel
  3. 3Pick Style: Numeric, Roman, or Letters
  4. 4Set Start at to continue numbering from a prior document
  5. 5Toggle Zero-pad for alignment, Reverse for countdown

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

What this tool actually does

Paragraph-level numbering: one counter per paragraph, regardless of how many lines the paragraph wraps across.

One counter per paragraph

A paragraph is a run of one or more consecutive non-blank lines. The counter prefixes only the first line of each paragraph. A paragraph that wraps across five lines still gets exactly one counter - no more line-per-line numbering on wrapped prose.

Blank-line separators pass through

Blank and whitespace-only lines are paragraph separators. They come through the output with their exact spacing - two blank lines stay two, one stays one. No spacing normalisation.

Three counter styles

Numeric (`1., 2., 3.`), Roman (`I., II., III.`), Letters (`A., B., C.`). Letters wrap to `AA` after 26 for very long documents.

Zero-pad (numeric only)

Widens every counter to match the digit count of the highest counter - `1..12` → `01..12`. Useful for visually aligned reference lists.

Reverse counts down

With 3 paragraphs and Start at 1, Reverse produces counters `3, 2, 1` in reading order. Useful for countdown-style documents.

Need line-level numbering instead?

Use Add counters (numbers every non-blank line) or Enumerate sentences (same op, sentence-per-line framing). This tool is specifically for blank-line-separated paragraphs.

Worked example

Three paragraphs - the second one wraps across two lines. Only the first line of each paragraph gets a counter; the wrapped line and the blank-line separators pass through untouched.

Input
This is the first paragraph.

This is the second paragraph
and it continues on a second line.

And here is a third.
Output
1. This is the first paragraph.

2. This is the second paragraph
and it continues on a second line.

3. And here is a third.

Settings reference

How each option shapes the output using the sample above.

Setting What it does Effect on the sample
Style: Numeric (default) `1., 2., 3.` `1. This is the first paragraph.` / blank / `2. …`
Style: Roman `I., II., III.` `I. This is the first paragraph.` / blank / `II. …`
Style: Letters `A., B., C.` `A. This is the first paragraph.` / blank / `B. …`
Start at: 5 Begins counting at 5 `5. …` / blank / `6. …` / blank / `7. …`
Reverse: on Counts down from highest `3. …` / blank / `2. …` / blank / `1. …`
Multi-line paragraph (automatic) Treated as one paragraph; only the first line gets a counter Wrapped second line passes through without a counter

FAQ

What counts as a paragraph?
One or more consecutive non-blank lines. Paragraphs are separated from each other by at least one blank line. This matches the `split(/\n\s*\n/)` convention used by the other paragraph-aware tools on this site.
How is this different from Enumerate sentences?
Enumerate sentences uses the line-level counter op - it numbers every non-blank line. This tool uses a paragraph-aware op that numbers each blank-line-separated chunk as a single paragraph, regardless of how many lines the paragraph wraps across. Pick sentences when your input is one item per line; pick this when your input has real multi-line paragraphs.
What happens if my paragraphs wrap across multiple lines?
They still get exactly one counter per paragraph - prefixed to the first line only. Wrapped lines pass through untouched. This is the core reason this tool exists as a separate page rather than an alias of Add counters.
Can I zero-pad to align the paragraph numbers?
Yes, for Numeric style only. It widens each number to match the longest: `1..12` becomes `01..12`. Roman and Letters styles are variable-width by design.
How do I remove the numbering later?
Use Remove counters - it strips leading digits + punctuation from each line.