Skip to main content

Slugging done right. Tries to support close to 300 languages.

Project description

Slugger solves the seemingly simple problem of turning a title into an url frienly slug:

>>> from slugger import Slugger
>>> s = Slugger(lang='en_US')
>>> s.sluggify(u'Headless-body-in-topless-bar')
u'headless-body-in-topless-bar'

Unlike many other slugging libraries, it also handles language-specific ascii-translation. Compare the ä, ö and ü in German

>>> s = Slugger(lang='de_DE')
>>> s.sluggify(u'Türöffner')
u'tueroeffner'

against Swedish:

>>> s = Slugger(lang='sv_SE')
>>> s.sluggify(u'Färsk Ägg')
u'farsk-agg'

Criterias of what makes a good slug vary, common requirements are a maximum length and a reduced character set that is highly URL-friendly.

To generate high-quality slugs, Slugger leverages the locale information from glibc (included in the package), the unihandecode library and some hand-written replacements.

>>> s = Slugger('en_US')
>>> s.sluggify(u'Bed & Breakfast')
u'bed-and-breakfast'
>>> s.sluggify(u'Folding@Home')
u'foldingathome'

These are also language-aware:

>>> s = Slugger('fr_FR')
>>> s.sluggify(u'Toi & Moi')
u'toi-et-moi'

Help out

If you find a badly generated slug, please report on github. Also, any help in implementing better support for more languages is appreciated; see the official documentation on how to get involved in development.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for slugger, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size slugger-0.2.2.tar.gz (4.5 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page