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.

Source Distribution

slugger-0.2.2.tar.gz (4.5 MB view details)

Uploaded Source

File details

Details for the file slugger-0.2.2.tar.gz.

File metadata

  • Download URL: slugger-0.2.2.tar.gz
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for slugger-0.2.2.tar.gz
Algorithm Hash digest
SHA256 ed4de21fa1978da42573f96b379e06051b9c837da4a46d4b4364beee680f3908
MD5 e0b77f0bd132b883105f08d19b71bd09
BLAKE2b-256 18e4e91529925ac1c4b37802ce2c21c4a1f1df0eaa7c63934771f05d0297da17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page