Mercurial > piecrust2
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: |