Slugify
Slugify. Runs entirely on your device, nothing is uploaded.
Runs on your device. The file is never uploaded.
Slugify reduces a text file to one lowercase string of a to z and 0 to 9 joined by separator, which defaults to a hyphen. Your text is transliterated, normalised to NFKD and stripped of combining marks first, and everything else becomes a break. The whole file yields a single slug, never one per line.
Questions
What characters end up in the slug?
Only lower-case a to z and the digits 0 to 9, joined by the separator, which defaults to a hyphen. The text is transliterated, then normalised to NFKD with combining marks stripped, then lower-cased, and every run of remaining Latin letters and digits becomes one part. Everything else, punctuation, spaces and symbols alike, is a break between parts rather than a character in the output.
Does it handle accents and non-Latin text?
Latin accents, Cyrillic and Greek, yes. The transliteration step runs first, so Cafe with an accent becomes cafe and a Russian phrase becomes its Latin spelling. Basic Cyrillic and monotonic Greek have tables here, along with about eight extra Latin letters like the sharp s and the slashed o. CJK, Arabic and Hebrew have no table, so they produce nothing.
Why did it refuse to make a slug?
Because there was nothing left to build one from. When no Latin letter or digit survives the transliteration, the tool throws rather than handing back an empty string: "could not build a slug", followed by a note that Latin diacritics, Cyrillic and Greek are covered while scripts like CJK, Arabic or Hebrew have no Latin transliteration table here. Silently returning nothing would be the worse failure.
Can I use an underscore or a dot instead of a hyphen?
Yes. The separator option is free text, so set it to an underscore, a dot, an empty string, or anything else. It is inserted verbatim between the parts and is not itself filtered, so whatever you type is what you get. The default is a single hyphen, which is what URLs usually want.
Does it slug each line separately?
No. The whole file is treated as one string and comes back as one slug. If you want one slug per line, split the file first, or run the tool per file over a set of single-line files. This is worth knowing before you drop a list of titles in and get one long slug back.