check-code: check for consistent usage of the websub filter in hgweb templates
authorSteven Brown <StevenGBrown@gmail.com>
Sat, 17 May 2014 17:11:06 +0800
changeset 21487 c26464ce0781
parent 21486 16352b34e32e
child 21488 feb8ad2d57ee
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.
contrib/check-code.py
tests/test-check-code.t
--- a/contrib/check-code.py	Sat May 17 17:10:23 2014 +0800
+++ b/contrib/check-code.py	Sat May 17 17:11:06 2014 +0800
@@ -367,6 +367,16 @@
   []
 ]
 
+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 @@
     ('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():
--- a/tests/test-check-code.t	Sat May 17 17:10:23 2014 +0800
+++ b/tests/test-check-code.t	Sat May 17 17:11:06 2014 +0800
@@ -284,3 +284,19 @@
    > print _(
    don't use % inside _()
   [1]
+
+web templates
+
+  $ mkdir -p mercurial/templates
+  $ cat > mercurial/templates/example.tmpl <<EOF
+  > {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]