27 lines
574 B
Python
27 lines
574 B
Python
# coding=UTF-8
|
|
import unidecode
|
|
import re
|
|
|
|
|
|
def slugify(text):
|
|
"""Converts a string to a human-readable url"""
|
|
|
|
# translate
|
|
text = unidecode.unidecode(text)
|
|
|
|
# lowercase
|
|
text = text.lower()
|
|
|
|
# replace unwanted chars
|
|
numbers = re.compile('(?<=\d),(?=\d)')
|
|
text = numbers.sub('', text)
|
|
unwanted_chars = re.compile(r'[^_a-z0-9/]+')
|
|
text = unwanted_chars.sub('_', text)
|
|
|
|
# remove redundant _
|
|
duplicated_underscores = re.compile('_{2,}')
|
|
text = duplicated_underscores.sub('_', text)
|
|
text = text.strip('_')
|
|
|
|
return text
|