summaryrefslogtreecommitdiff
path: root/jinja2/parser.py
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2010-02-07 01:27:47 +0100
committerArmin Ronacher <armin.ronacher@active-4.com>2010-02-07 01:27:47 +0100
commit92622e9145a6b50d59ac7ed30fd255a664b76f4e (patch)
tree820097fdc941f42de948c9b54e1c17611f52a8bf /jinja2/parser.py
parent5d659dbe62e8198d26dbb72b25ad28326eba85a4 (diff)
downloadjinja2-92622e9145a6b50d59ac7ed30fd255a664b76f4e.tar.gz
Further error message improvement, this time for #341.
--HG-- branch : trunk
Diffstat (limited to 'jinja2/parser.py')
-rw-r--r--jinja2/parser.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/jinja2/parser.py b/jinja2/parser.py
index bc4925e..96980d1 100644
--- a/jinja2/parser.py
+++ b/jinja2/parser.py
@@ -212,6 +212,15 @@ class Parser(object):
node = nodes.Block(lineno=next(self.stream).lineno)
node.name = self.stream.expect('name').value
node.scoped = self.stream.skip_if('name:scoped')
+
+ # common problem people encounter when switching from django
+ # to jinja. we do not support hyphens in block names, so let's
+ # raise a nicer error message in that case.
+ if self.stream.current.type == 'sub':
+ self.fail('Block names in Jinja have to be valid Python '
+ 'identifiers and may not contain hypens, use an '
+ 'underscore instead.')
+
node.body = self.parse_statements(('name:endblock',), drop_needle=True)
self.stream.skip_if('name:' + node.name)
return node