diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-19 18:05:22 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-19 18:05:22 +0000 |
| commit | c09351aec63f004f89befa4752b386f2a2a3a63c (patch) | |
| tree | 54d4b83d864cc214f15c47dfde3b8b4b0055c801 | |
| parent | 67eeb72e2681496d33a8fb0e44090a5107737e0a (diff) | |
Fixed #6965 -- Sped up the urlize and urlizetrunc filters. A nice patch from Andrew Badr.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7985 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/utils/html.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/django/utils/html.py b/django/utils/html.py index 747af52879..9b3fad8b03 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -94,7 +94,9 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): words = word_split_re.split(force_unicode(text)) nofollow_attr = nofollow and ' rel="nofollow"' or '' for i, word in enumerate(words): - match = punctuation_re.match(word) + match = None + if '.' in word or '@' in word or ':' in word: + match = punctuation_re.match(word) if match: lead, middle, trail = match.groups() # Make URL we want to point to. @@ -102,7 +104,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): if middle.startswith('http://') or middle.startswith('https://'): url = urlquote(middle, safe='/&=:;#?+*') elif middle.startswith('www.') or ('@' not in middle and \ - len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \ + middle and middle[0] in string.ascii_letters + string.digits and \ (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))): url = urlquote('http://%s' % middle, safe='/&=:;#?+*') elif '@' in middle and not ':' in middle and simple_email_re.match(middle): |
