# ascii-flatten This simple library provides a function to flatten non-ASCII European characters into nearest US-ASCII equivlent. See source for `Data.Char.AsciiFlatten` for the character conversions. The character translation table is derived from this URL: http://yob.id.au/2008/05/08/thinking-sphinx-and-unicode.html ## Usage ```haskell :m + Data.Char.AsciiFlatten ... Ok, modules loaded: Data.Char.AsciiFlatten, Main. ghci> :m + Data.Char.AsciiFlatten ghci> map asciiFlattenCI "café" "cafe" ghci> map asciiFlattenCI "Übermensch" "ubermensch" ``` Note that currently, all characters are flattened to lower case ASCII, because my source data only as case-insensitive mappings to lowercase ascii characters. If anyone wants to contribute case-sensitive conversion code mappings, please do. When performance matters, use Data.Text.map :: (Char -> Char) -> Text Text ## Command line usage The package also installs a simple command line tool named `ascii-flatten` for use from the command line and in shell scripts: $ echo café | ascii-flatten cafe ## Code generation The code for `asciiFlatten` is generated using the `build.sh` script in the project directory.