# HG changeset patch # User Mads Kiilerich # Date 1473115878 -7200 # Node ID 923db690b56f5ee8bb6bc833c8a8cee5491ab77a # Parent 24632b87a2635027dd4ba3bcbdb13a5e89436181 helpers: inline changeset hash markup in urlify_text diff -r 24632b87a263 -r 923db690b56f kallithea/lib/helpers.py --- a/kallithea/lib/helpers.py Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/lib/helpers.py Tue Sep 06 00:51:18 2016 +0200 @@ -1250,6 +1250,10 @@ (?P%s) | # @mention markup (?P%s) | +# Changeset hash markup +(?[0-9a-f]{12,40}) +(?!\w|[-_]) | # "Stylize" markup \[see\ \=>\ *(?P[a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\] | \[license\ \=>\ *(?P[a-zA-Z0-9\/\=\?\&\ \:\/\.\-]*)\] | @@ -1278,6 +1282,13 @@ mention = match_obj.group('mention') if mention is not None: return '%s' % mention + hash_ = match_obj.group('hash') + if hash_ is not None and repo_name is not None: + from pylons import url # doh, we need to re-import url to mock it later + return '%(hash)s' % { + 'url': url('changeset_home', repo_name=repo_name, revision=hash_), + 'hash': hash_, + } if stylize: seen = match_obj.group('seen') if seen: @@ -1308,8 +1319,6 @@ else: s = truncatef(s, truncate, whole_word=True) s = html_escape(s) - if repo_name is not None: - s = urlify_changesets(s, repo_name) s = _urlify(s) if repo_name is not None: s = urlify_issues(s, repo_name, link_) @@ -1317,27 +1326,6 @@ return literal(s) -def _urlify_changeset_replace_f(repo_name): - from pylons import url # doh, we need to re-import url to mock it later - def urlify_changeset_replace(match_obj): - rev = match_obj.group(0) - return '%(rev)s' % { - 'url': url('changeset_home', repo_name=repo_name, revision=rev), - 'rev': rev, - } - return urlify_changeset_replace - - -urilify_changeset_re = r'(?:^|(?<=[\s(),]))([0-9a-fA-F]{12,40})(?=$|\s|[.,:()])' - -def urlify_changesets(text_, repo_name): - """ - Extract revision ids from changeset and make link from them - """ - urlify_changeset_replace = _urlify_changeset_replace_f(repo_name) - return re.sub(urilify_changeset_re, urlify_changeset_replace, text_) - - def linkify_others(t, l): """Add a default link to html with links. HTML doesn't allow nesting of links, so the outer link must be broken up diff -r 24632b87a263 -r 923db690b56f kallithea/tests/other/test_libs.py --- a/kallithea/tests/other/test_libs.py Tue Sep 06 00:51:18 2016 +0200 +++ b/kallithea/tests/other/test_libs.py Tue Sep 06 00:51:18 2016 +0200 @@ -313,7 +313,7 @@ """ some text url[123123123123]
""" """ sometimes !"""), ]) - def test_urlify_changesets(self, sample, expected): + def test_urlify_text(self, sample, expected): def fake_url(self, *args, **kwargs): return '/some-url'