Skip to content

Instantly share code, notes, and snippets.

@dolph
Created September 4, 2012 16:09
Show Gist options
  • Select an option

  • Save dolph/3622892 to your computer and use it in GitHub Desktop.

Select an option

Save dolph/3622892 to your computer and use it in GitHub Desktop.
def slugify(s):
"""
Simplifies ugly strings into something URL-friendly.
>>> print slugify("[Some] _ Article's Title--")
some-articles-title
"""
# "[Some] _ Article's Title--"
# "[some] _ article's title--"
s = s.lower()
# "[some] _ article's_title--"
# "[some]___article's_title__"
for c in [' ', '-', '.', '/']:
s = s.replace(c, '_')
# "[some]___article's_title__"
# "some___articles_title__"
s = re.sub('\W', '', s)
# "some___articles_title__"
# "some articles title "
s = s.replace('_', ' ')
# "some articles title "
# "some articles title "
s = re.sub('\s+', ' ', s)
# "some articles title "
# "some articles title"
s = s.strip()
# "some articles title"
# "some-articles-title"
s = s.replace(' ', '-')
return s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment