Alphabetizer Manual
A clear set of rules for putting a list in order.
The short version
- Paste one item per line, or open a local UTF-8 TXT or Markdown file.
- Choose a method and direction. Alphabetical, A–Z, with Ignore case on is the default.
- Select Sort list. Review the sorted pane and its line summary.
- Copy the sorted list, download a TXT list, or download a Markdown or JSON report.
Sorting never replaces the original pane. Changing the input or a comparison option clears the old result and disables its actions until you sort again. If you open a Markdown file, every raw line is an item; the app does not understand headings, paragraphs or tables.
Four ways to sort
| Method | What it compares | Use it for |
|---|---|---|
| Alphabetical | English text collation, without numeric comparison | Words, names, ideas and labels |
| Natural order | English text collation with number-aware ordering | Labels such as item1, item2, item10 |
| Numbers only | The exact value of a whole signed ASCII integer or decimal | 2, -3, .5, +2.0 or very large decimals |
| By length | Unicode code points in the comparison key | Shortest or longest lines first |
Alphabetical and Natural order use the browser's built-in Intl.Collator with English locale, punctuation significant and no forced upper/lowercase priority. Ignore case selects accent-sensitive comparison; turning it off selects case-sensitive comparison. Natural order enables numeric text comparison. Accents, punctuation and equivalent Unicode spellings can follow the browser's collation data, so detailed order may differ across browser versions.
Comparison options
Ignore case defaults to on in the two text methods. It can make alpha and Alpha equal for ordering. Their spelling remains unchanged. This control is disabled for Numbers only and By length.
Ignore edge spaces defaults to off. When enabled, ASCII spaces and tabs at the beginning or end of each line are excluded from its comparison key. They stay in the output. Other Unicode spaces, accents, joiners and direction marks are retained and are not normalized away.
Numbers only: a strict decimal format
Accepted examples: 10, -3, +2, .5, 2., -0.125. A token may contain at most 1,000 characters. Leading zeros and trailing decimal zeros are kept. Values 2.0, 02 and +2 compare equally and retain their relative input order.
Rejected examples: 1,000, $2, 3kg, 1e3, 0x10, Infinity and NaN. Spaces around a number are accepted only when Ignore edge spaces is on. The app validates each nonblank line as a complete token, reports up to five offending one-based line numbers and the total invalid count, and returns no partial result. An all-blank list has no numbers to sort.
Decimal values are compared using their sign and digit strings, without conversion to floating point. For example, 9007199254740992 and 9007199254740993 remain distinct.
By length: code points, not visual characters
A supplementary emoji such as 😀 counts as one code point. A letter followed by a combining accent counts as two; a joined family emoji contains several code points even if it appears as one symbol. If Ignore edge spaces is on, those ASCII edge spaces and tabs do not contribute to length. The raw line still stays intact.
Records, blank lines and final newlines
Each line is a record. CRLF and lone CR line endings become LF. One final LF is a terminator, not an extra record. Empty input has no records. A line with only ASCII spaces or tabs is blank. Blank records are kept at the end in both directions, in their original relative order.
| Input notation | Records | Final terminator |
|---|---|---|
a | One: a | No |
a\n | One: a | Yes |
a\n\n | Two: a and an empty line | Yes |
\na | Two: an empty line and a | No in source; added after sorting |
Output keeps an existing final newline. It also adds a terminator if the last sorted record is empty, so reopening the TXT result preserves that empty record. The result notice and reports identify this addition. Otherwise the source's final-newline presence is retained. The normalized output is not a byte-for-byte copy of the original file.
Duplicates are not removed. Equal comparison keys keep their original order in both ascending and descending sorts. A descending sort reverses the comparison, not the order of equal items.
Read the result
The summary shows total line records, moved lines and the active method. “Moved” counts records whose output position differs from their original position. It is not a count of unique text or a minimum number of editing operations. Blank count follows the ASCII-space/tab rule above. If no records move, the app says the list was already in the chosen order.
Original lines remain editable. The sorted pane is read-only. A new edit or rule change makes the earlier output stale, so copy/download stay disabled until a new successful sort. Cancel stops a pending sort and leaves the original list available.
Files and limits
- Input: at most 100,000 UTF-16 code units and 10,000 line records. Some emoji occupy two input units.
- Files: local
.txtor.md, valid UTF-8, at most 1 MiB before decoding. A UTF-8 transport signature/BOM is removed on import and reported. - Incomplete UTF-16 characters are rejected rather than silently changed in downloads.
- Sorting: a five-second timeout. A stalled or cancelled job returns no approximate or partial ordering.
- Downloads/reports: at most 2 MiB after UTF-8 encoding.
Oversized pasted text remains visible for you to shorten; Sort is disabled. Nothing is silently truncated. Unsupported, oversized or invalid file imports leave existing work unchanged. Opening a valid file over existing text asks before replacement.
Copy and download
Copy list and Sorted list · TXT contain the exact current sorted string, with the documented LF/final-newline behavior. If clipboard access is unavailable, the app shows selectable text for your device's normal copy action.
Sort report · Markdown contains a readable sorted-list block, active rules, counts, collation details when applicable and version information. The code fence grows when your text contains backticks. Sort report · JSON also contains each sorted record's original zero-based index, supporting a record-by-record review.
Reports contain the sorted list without a separate original-list section. JSON’s original indices make the original record order recoverable. Neither report includes hidden Undo snapshots or a source filename. They record whether the source/output ended with a newline and whether one was added. App version 0.1.0, engine version 0.1.0 and report schema 0.1.0 are separate values. English text collation comes from your browser, not an additional sorting package.
Undo, leaving and appearance
Try example, Clear and successful file replacement can retain up to six valid previous inputs in memory. Undo restores an input, not a sorted result or previous option settings; sort again afterward. Ordinary typing uses the editor's native Undo. Oversized or invalid inputs are not added to the app's Undo buffer.
Links to the current app preserve work. Other page links offer Cancel, Leave this page or Open in a new tab. Cancelling keeps the input, options, result and pending work. Closing/reloading can lose the session; the browser may show its usual leave warning. This is not a save feature.
Choose System, Light or Dark to suit your reading preference. Your choice may be remembered on this device; it contains no list or file contents.
When a different app fits
Use Text Cleaner to remove repeated lines or repair whitespace before sorting. Use Text Compare to compare original and reordered lists. Copy or download between apps yourself. Alphabetizer does not infer surnames, format citations, sort spreadsheet columns, shuffle items or arrange letters inside a word.
For worked examples, read Alphabetical, Natural and Numeric Sorting. Technical references: ECMA-402 Intl.Collator and ECMAScript array sorting.