diff options
-rw-r--r-- | pystache/parser.py | 9 | ||||
-rw-r--r-- | pystache/renderengine.py | 8 |
2 files changed, 9 insertions, 8 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: diff --git a/pystache/renderengine.py b/pystache/renderengine.py index e51d066..3fb0ae6 100644 --- a/pystache/renderengine.py +++ b/pystache/renderengine.py @@ -10,9 +10,6 @@ import re from parser import Parser -NON_BLANK_RE = re.compile(r'^(.)', re.M) - - class RenderEngine(object): """ @@ -129,15 +126,12 @@ class RenderEngine(object): return get_escaped - def _make_get_partial(self, name, indentation=''): + def _make_get_partial(self, template): def get_partial(context): """ Returns: a string of type unicode. """ - template = self.load_partial(name) - # Indent before rendering. - template = re.sub(NON_BLANK_RE, indentation + r'\1', template) return self._render(template, context) return get_partial |