# Slugify

[![Build Status](](

Transform strings in any language into slugs.

It works by transliterating Unicode characters into alphanumeric strings (e.g.
`字` into `zi`). All punctuation is stripped and whitespace between words are
replaced by separators.

This package has no dependencies.

## Examples

Slug.slugify("Hello, World!")


Slug.slugify("Wikipedia case", separator: ?_, lowercase: false)

# Remember to check for nil if a valid slug is important!

## Options

Whitespaces are replaced by separators (defaults to `-`). Pass any codepoint or
string to customize the separator, or pass `""` to have none.

Slug.slugify("  How are   you?  ")

Slug.slugify("John Doe", separator: ?.)

Slug.slugify("Wide open spaces", separator: "%20")

Slug.slugify("Madam, I'm Adam", separator: "")

Slugs are forced lowercase by default, unless `lowercase: false` is passed.

Slug.slugify("StUdLy CaPs", lowercase: false)

To avoid transforming certain characters, pass a string (or a list of strings)
of graphemes to `ignore`.

Slug.slugify("你好,世界", ignore: "你好")

Slug.slugify("你好,世界", ignore: ["你", "好"])

## Caveats

Slugify cannot differentiate between Chinese characters and Japanese Kanji.
In the same vein as other libraries, Japanese Kanji will transform into Chinese

## Installation

Add `slugify` to your list of dependencies in `mix.exs`:

def deps do
  [{:slugify, "~> 1.1"}]

Don’t forget to update your dependencies.

$ mix deps.get

## Links

* [Documentation][2]
* [Hex][3]

## License

Slugify is released under [MIT][4] license.

## Credits

* Inspired by [Unidecode][5], [Transliteration][6] and [Slugger][7].

* Data ported from andyhu's excellent [Transliteration][6] package.