summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pystache/parser.py9
-rw-r--r--pystache/renderengine.py8
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