diff options
author | Brandon Invergo <brandon@invergo.net> | 2013-05-19 13:23:17 +0200 |
---|---|---|
committer | Brandon Invergo <brandon@invergo.net> | 2013-05-19 13:23:17 +0200 |
commit | e02b7b6b3bd6b20c65aeb2ca5fd1e0030b631b88 (patch) | |
tree | 988b9505a649f824f2ea53ac04bdfbc3a0da983a /mediagoblin/tools/url.py | |
parent | 60c42337ef7bc9b4aec0d3f1b2cb5f19a09d9a7f (diff) | |
parent | 041d2fd785f9b3e18f9fd758f91dbfa7715d317c (diff) | |
download | mediagoblin-e02b7b6b3bd6b20c65aeb2ca5fd1e0030b631b88.tar.lz mediagoblin-e02b7b6b3bd6b20c65aeb2ca5fd1e0030b631b88.tar.xz mediagoblin-e02b7b6b3bd6b20c65aeb2ca5fd1e0030b631b88.zip |
Merge branch 'master' of git://gitorious.org/mediagoblin/mediagoblin
Diffstat (limited to 'mediagoblin/tools/url.py')
-rw-r--r-- | mediagoblin/tools/url.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/mediagoblin/tools/url.py b/mediagoblin/tools/url.py index 7477173a..d9179f9e 100644 --- a/mediagoblin/tools/url.py +++ b/mediagoblin/tools/url.py @@ -15,10 +15,17 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import re -import translitcodec +# This import *is* used; see word.encode('tranlit/long') below. +from unicodedata import normalize +try: + import translitcodec + USING_TRANSLITCODEC = True +except ImportError: + USING_TRANSLITCODEC = False -_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') + +_punct_re = re.compile(r'[\t !"#:$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') def slugify(text, delim=u'-'): @@ -27,7 +34,11 @@ def slugify(text, delim=u'-'): """ result = [] for word in _punct_re.split(text.lower()): - word = word.encode('translit/long') + if USING_TRANSLITCODEC: + word = word.encode('translit/long') + else: + word = normalize('NFKD', word).encode('ascii', 'ignore') + if word: result.append(word) return unicode(delim.join(result)) |