GitHub - mozilla/unicode-slugify: A slugifier that works in unicode (original) (raw)

Unicode Slugify

Unicode Slugify is a slugifier that generates unicode slugs. It was originally used in the Firefox Add-ons web site to generate slugs for add-ons and add-on collections. Many of these add-ons and collections had unicode characters and required more than simple transliteration.

Usage

from slugify import slugify, SLUG_OK

Default usage : lower, spaces replaced with "-", only alphanum and "-_~" chars, keeps unicode

slugify(u'Bän...g (bang)')

u'bäng-bang'

Keep capital letters and spaces

slugify(u'Bän...g (bang)', lower=False, spaces=True)

u'Bäng bang'

Replace non ascii chars with their "best" representation

slugify(u'北京 (capital of China)', only_ascii=True)

u'bei-jing-capital-of-china'

Allow some extra chars

slugify(u'北京 (capital of China)', ok=SLUG_OK+'()', only_ascii=True)

u'bei-jing-(capital-of-china)'

"snake_case" example

def snake_case(s): # As "-" is not in allowed Chars, first one (_) is used for space replacement return slugify(s, ok='_', only_ascii=True) snake_case(u'北京 (capital of china)')

u'bei_jing_capital_of_china'

"CamelCase" example

def camel_case(s): return slugify(s.title(), ok='', only_ascii=True, lower=False) camel_case(u'北京 (capital of china)')

u'BeiJingCapitalOfChina'

Thanks

Tomaz Solc, unidecode, https://pypi.python.org/pypi/Unidecode