comparison piecrust/templating/jinjaengine.py @ 989:8adc27285d93

bake: Big pass on bake performance. - Reduce the amount of data passed between processes. - Make inter-process data simple objects to make it easier to test with alternatives to pickle. - Make sources have the basic requirement to be able to find a content item from an item spec (path). - Make Hoedown the default Markdown formatter.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 19 Nov 2017 14:29:17 -0800
parents 1bb704434ee2
children
comparison
equal deleted inserted replaced
988:f83ae0a5d793 989:8adc27285d93
17 self._jinja_syntax_error = None 17 self._jinja_syntax_error = None
18 self._jinja_not_found = None 18 self._jinja_not_found = None
19 19
20 def renderSegment(self, path, segment, data): 20 def renderSegment(self, path, segment, data):
21 if not _string_needs_render(segment.content): 21 if not _string_needs_render(segment.content):
22 return segment.content 22 return segment.content, False
23 23
24 self._ensureLoaded() 24 self._ensureLoaded()
25 25
26 seg_path = _make_segment_path(path, segment.offset) 26 seg_path = _make_segment_path(path, segment.offset)
27 self.env.loader.segments_cache[seg_path] = ( 27 self.env.loader.segments_cache[seg_path] = (
32 raise self._getTemplatingError(tse, filename=path) 32 raise self._getTemplatingError(tse, filename=path)
33 except self._jinja_not_found: 33 except self._jinja_not_found:
34 raise TemplateNotFoundError() 34 raise TemplateNotFoundError()
35 35
36 try: 36 try:
37 return tpl.render(data) 37 return tpl.render(data), True
38 except self._jinja_syntax_error as tse: 38 except self._jinja_syntax_error as tse:
39 raise self._getTemplatingError(tse) 39 raise self._getTemplatingError(tse)
40 except AbortedSourceUseError: 40 except AbortedSourceUseError:
41 raise 41 raise
42 except Exception as ex: 42 except Exception as ex: