diff options
-rw-r--r-- | coverage/templite.py | 6 | ||||
-rw-r--r-- | test/test_templite.py | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/coverage/templite.py b/coverage/templite.py index 23c805b1..3b2efebd 100644 --- a/coverage/templite.py +++ b/coverage/templite.py @@ -18,6 +18,10 @@ class Templite(object): {% for var in list %}...{% endfor %} + Comments are within curly-hash markers:: + + {# This will be ignored #} + Construct a Templite with the template text, then use `render` against a dictionary context to create a finished string. @@ -61,6 +65,8 @@ class Templite(object): def _prepare(self, text): """Convert Django-style data references into Python-native ones.""" + # Remove comments. + text = re.sub(r"(?s){#.*?#}", "", text) # Pull out loops. text = re.sub( r"(?s){% for ([a-z0-9_]+) in ([a-z0-9_.|]+) %}(.*?){% endfor %}", diff --git a/test/test_templite.py b/test/test_templite.py index 6102183d..4c7545bf 100644 --- a/test/test_templite.py +++ b/test/test_templite.py @@ -126,6 +126,16 @@ class TempliteTest(unittest.TestCase): "123 and 123" ) + def test_comments(self): + # Single-line comments work: + self.try_render( + "Hello, {# Name goes here: #}{{name}}!", + {'name':'Ned'}, "Hello, Ned!") + # and so do multi-line comments: + self.try_render( + "Hello, {# Name\ngoes\nhere: #}{{name}}!", + {'name':'Ned'}, "Hello, Ned!") + if __name__ == '__main__': unittest.main() |