Mercurial > piecrust2
comparison piecrust/templating/jinjaengine.py @ 445:d8d86debea81
performance: Only use Jinja2 for rendering text if necessary.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 30 Jun 2015 21:39:20 -0700 |
parents | 9e25852f058b |
children | 4cdf6c2157a0 |
comparison
equal
deleted
inserted
replaced
444:1359b2b0cc73 | 445:d8d86debea81 |
---|---|
33 def __init__(self): | 33 def __init__(self): |
34 self.env = None | 34 self.env = None |
35 | 35 |
36 def renderString(self, txt, data, filename=None): | 36 def renderString(self, txt, data, filename=None): |
37 self._ensureLoaded() | 37 self._ensureLoaded() |
38 | |
39 offset = 0 | |
40 do_render = False | |
41 index = txt.find('{') | |
42 while index >= 0: | |
43 ch = txt[index + 1] | |
44 if ch == '{' or ch == '%': | |
45 do_render = True | |
46 break | |
47 index = txt.find('{', offset + 1) | |
48 | |
49 if not do_render: | |
50 return txt | |
38 | 51 |
39 try: | 52 try: |
40 tpl = self.env.from_string(txt) | 53 tpl = self.env.from_string(txt) |
41 except TemplateSyntaxError as tse: | 54 except TemplateSyntaxError as tse: |
42 raise self._getTemplatingError(tse, filename=filename) | 55 raise self._getTemplatingError(tse, filename=filename) |