diff options
author | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-01-21 16:12:19 -0800 |
---|---|---|
committer | Chris Jerdonek <chris.jerdonek@gmail.com> | 2012-01-21 16:12:19 -0800 |
commit | f26c5e7afcdf7316dc138952eab4cc5a607c1edd (patch) | |
tree | 48c5c98cce4015ead048bce80bb58d61eb4fb226 /pystache/parser.py | |
parent | 792ce17d3fa78c5d23b9d4327c0ea404d7b1b67c (diff) | |
download | pystache-f26c5e7afcdf7316dc138952eab4cc5a607c1edd.tar.gz |
Moved some of the partial logic from RenderEngine to Parser.
Diffstat (limited to 'pystache/parser.py')
-rw-r--r-- | pystache/parser.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pystache/parser.py b/pystache/parser.py index f74d1bd..f88f61b 100644 --- a/pystache/parser.py +++ b/pystache/parser.py @@ -14,6 +14,7 @@ from template import ParsedTemplate DEFAULT_DELIMITERS = ('{{', '}}') END_OF_LINE_CHARACTERS = ['\r', '\n'] +NON_BLANK_RE = re.compile(r'^(.)', re.M) def _compile_template_re(delimiters): @@ -148,6 +149,7 @@ class Parser(object): def _handle_tag_type(self, template, parse_tree, tag_type, tag_key, leading_whitespace, end_index): + # TODO: switch to using a dictionary instead of a bunch of ifs and elifs. if tag_type == '!': return end_index @@ -178,7 +180,12 @@ class Parser(object): elif tag_type == '>': - func = engine._make_get_partial(tag_key, leading_whitespace) + template = engine.load_partial(tag_key) + + # Indent before rendering. + template = re.sub(NON_BLANK_RE, leading_whitespace + r'\1', template) + + func = engine._make_get_partial(template) else: |