summaryrefslogtreecommitdiff
path: root/pystache/renderengine.py
diff options
context:
space:
mode:
authorChris Jerdonek <chris.jerdonek@gmail.com>2012-01-01 11:09:34 -0800
committerChris Jerdonek <chris.jerdonek@gmail.com>2012-01-01 11:09:34 -0800
commit18d628611b981acf3c9f224e48c111a83dd1234c (patch)
treede44bacc58fb9c36fa7153eef75575f3c1bf4ec8 /pystache/renderengine.py
parent7e65bb6df32e30f33244dd6b4cd4e24c1e445a4d (diff)
downloadpystache-18d628611b981acf3c9f224e48c111a83dd1234c.tar.gz
Fixed implicit iterators not working.
Diffstat (limited to 'pystache/renderengine.py')
-rw-r--r--pystache/renderengine.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/pystache/renderengine.py b/pystache/renderengine.py
index b3a9ff6..95d963d 100644
--- a/pystache/renderengine.py
+++ b/pystache/renderengine.py
@@ -366,7 +366,16 @@ class Template(object):
self.template = template
def _compile_regexps(self):
- tags = {'otag': re.escape(self.otag), 'ctag': re.escape(self.ctag)}
+
+ # The possible tag type characters following the opening tag,
+ # excluding "=" and "{".
+ tag_types = "!>&/#^"
+
+ # TODO: are we following this in the spec?
+ #
+ # The tag's content MUST be a non-whitespace character sequence
+ # NOT containing the current closing delimiter.
+ #
tag = r"""
(?P<content>[\s\S]*?)
(?P<whitespace>[\ \t]*)
@@ -374,11 +383,12 @@ class Template(object):
(?:
(?P<change>=) \s* (?P<delims>.+?) \s* = |
(?P<raw>{) \s* (?P<raw_name>.+?) \s* } |
- (?P<tag>\W?) \s* (?P<name>[\s\S]+?)
+ (?P<tag>[%(tag_types)s]?) \s* (?P<name>[\s\S]+?)
)
\s* %(ctag)s
- """
- self.tag_re = re.compile(tag % tags, re.M | re.X)
+ """ % {'tag_types': tag_types, 'otag': re.escape(self.otag), 'ctag': re.escape(self.ctag)}
+
+ self.tag_re = re.compile(tag, re.M | re.X)
def to_unicode(self, text):
return unicode(text)