From 62766f42482f5071e7af1a806ae5c287f2332921 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 8 Jan 2012 21:36:22 +0000 Subject: [PATCH] Reverted parts of r17359 that could cause false positives in URL detection, especially on file names. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17364 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/html.py | 9 ++++----- docs/ref/templates/builtins.txt | 14 ++++++-------- tests/regressiontests/defaultfilters/tests.py | 2 -- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/django/utils/html.py b/django/utils/html.py index d04e75f856..c4be281e7d 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -21,7 +21,7 @@ unencoded_ampersands_re = re.compile(r'&(?!(\w+|#\d+);)') unquoted_percents_re = re.compile(r'%(?![0-9A-Fa-f]{2})') word_split_re = re.compile(r'(\s+)') simple_url_re = re.compile(r'^https?://\w') -simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org|[a-z]{2})$') +simple_url_2_re = re.compile(r'^www\.|^(?!http)\w[^@]+\.(com|edu|gov|int|mil|net|org)$') simple_email_re = re.compile(r'^\S+@\S+\.\S+$') link_target_attribute_re = re.compile(r'(]*?)target=[^\s>]+') html_gunk_re = re.compile(r'(?:
|<\/i>|<\/b>|<\/em>|<\/strong>|<\/?smallcaps>|<\/?uppercase>)', re.IGNORECASE) @@ -125,10 +125,9 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False): Converts any URLs in text into clickable links. Works on http://, https://, www. links, and also on links ending in one of - the original seven gTLDs (.com, .edu, .gov, .int, .mil, .net, and .org) or - a two-letter ccTLD. Links can have trailing punctuation (periods, commas, - close-parens) and leading punctuation (opening parens) and it'll still do - the right thing. + the original seven gTLDs (.com, .edu, .gov, .int, .mil, .net, and .org). + Links can have trailing punctuation (periods, commas, close-parens) and + leading punctuation (opening parens) and it'll still do the right thing. If trim_url_limit is not None, the URLs in link text longer than this limit will truncated to trim_url_limit-3 characters and appended with an elipsis. diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt index 698b3c654d..85d43ceb51 100644 --- a/docs/ref/templates/builtins.txt +++ b/docs/ref/templates/builtins.txt @@ -2226,15 +2226,13 @@ urlize Converts URLs in text into clickable links. -This template tag works on several kinds of links: +This template tag works on links prefixed with ``http://``, ``https://``, or +``www.``. For example, ``http://goo.gl/aia1t`` will get converted but +``goo.gl/aia1t`` won't. -- links prefixed with ``http://``, ``https://``, or ``www.``. For example, - ``http://goo.gl/aia1t`` will get converted but ``goo.gl/aia1t`` won't. -- domain-only links ending in one of the original top level domains - (``.com``, ``.edu``, ``.gov``, ``.int``, ``.mil``, ``.net``, and - ``.org``). For example, ``djangoproject.com`` also gets converted. -- domain-only links ending in a dot followed by two letters. This covers - most country codes. For example, ``djangocon.eu`` still gets converted. +It also supports domain-only links ending in one of the original top level +domains (``.com``, ``.edu``, ``.gov``, ``.int``, ``.mil``, ``.net``, and +``.org``). For example, ``djangoproject.com`` gets converted too. .. versionchanged:: 1.4 diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py index 00807b0360..b44aa97704 100644 --- a/tests/regressiontests/defaultfilters/tests.py +++ b/tests/regressiontests/defaultfilters/tests.py @@ -287,8 +287,6 @@ class DefaultFiltersTests(TestCase): # Check urlize accepts more TLDs - see #16656 self.assertEqual(urlize('usa.gov'), u'
usa.gov') - self.assertEqual(urlize('europa.eu'), - u'europa.eu') def test_wordcount(self): self.assertEqual(wordcount(''), 0)