# HG changeset patch # User Steven Brown # Date 2014-05-17 09:11:06 # Node ID c26464ce07817ba6d3338b14dd53d4739709abf1 # Parent 16352b34e32e40faab60fef8a0e533759e7a73fe check-code: check for consistent usage of the websub filter in hgweb templates The check-code tool now expects the "desc" keyword to be followed by the "websub" filter, with the following exceptions: a) It has no filters at all, e.g. a changeset description in the raw style templates or the repository description in the summary page. b) It is followed by the "firstline" filter, e.g. the first line of the changeset description is displayed as a summary or title. diff --git a/contrib/check-code.py b/contrib/check-code.py --- a/contrib/check-code.py +++ b/contrib/check-code.py @@ -367,6 +367,16 @@ inrevlogpats = [ [] ] +webtemplatefilters = [] + +webtemplatepats = [ + [], + [ + (r'{desc(\|(?!websub|firstline)[^\|]*)+}', + 'follow desc keyword with either firstline or websub'), + ] +] + checks = [ ('python', r'.*\.(py|cgi)$', r'^#!.*python', pyfilters, pypats), ('test script', r'(.*/)?test-[^.~]*$', '', testfilters, testpats), @@ -377,6 +387,8 @@ checks = [ ('layering violation ui in util', r'mercurial/util\.py', '', pyfilters, inutilpats), ('txt', r'.*\.txt$', '', txtfilters, txtpats), + ('web template', r'mercurial/templates/.*\.tmpl', '', + webtemplatefilters, webtemplatepats), ] def _preparepats(): diff --git a/tests/test-check-code.t b/tests/test-check-code.t --- a/tests/test-check-code.t +++ b/tests/test-check-code.t @@ -284,3 +284,19 @@ > print _( don't use % inside _() [1] + +web templates + + $ mkdir -p mercurial/templates + $ cat > mercurial/templates/example.tmpl < {desc} + > {desc|escape} + > {desc|firstline} + > {desc|websub} + > EOF + + $ "$check_code" --warnings mercurial/templates/example.tmpl + mercurial/templates/example.tmpl:2: + > {desc|escape} + warning: follow desc keyword with either firstline or websub + [1]