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)