Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Starting number | Any integer, including zero and negative numbers |
|---|---|
| Step | Any non-zero integer — count every other line (step 2) or backwards (negative step) |
| Separator | Period, bracket, dash or colon, with a trailing space |
| Skip empty lines | On by default — numbering doesn't get thrown off by blank lines in the list |
When it misleads you
- If the step is zero or not a number, the default of 1 is used instead — not an infinite loop repeating the same number.
- With "skip empty lines" off, empty lines get a number too — the list ends up with something like "5. " with no text after the separator.
- Numbering doesn't account for nesting or hierarchy — if the list has sub-items that logically should be numbered separately (1.1, 1.2), this tool still numbers every line straight through with one shared counter.
- A negative step decreases the number on every line — with the usual starting value of 1 and such a step, the numbers go negative quite quickly; that's expected behavior, not a bug.
How it is calculated
The text is split into lines. The number counter is set to the starting value from the "start from" field.
For each line: if "skip empty lines" is on and the line is blank, no number is added and the counter isn't advanced. Otherwise the current number and separator are prepended to the line, and the counter advances by the step value.
The separator is a fixed set of four choices (period, bracket, dash, colon), each already including a trailing space for readability.
The result counter shows how many lines actually got a number — that is, how many times the main case ran, rather than the empty-line skip.
Questions and answers
Can I start numbering from something other than 1?
Yes, type any integer into the "start from" field — for example 0 or 100.
How do I number every other line (1, 3, 5...)?
Set the step to 2.
How do I add the number at the end of the line instead of the start?
There's a separate tool for that — "end-of-line numberer."
Is my text sent anywhere?
No, all the processing runs in your browser.