comparison piecrust/rendering.py @ 174:e9a3d405e18f

serve: Always force render the page being previewed. This is because if the page hasn't changed, but it includes pages that did change, it will re-use the cache and the user will preview the old version.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 03 Jan 2015 21:20:19 -0800
parents 1187739e5a19
children fff195335d0a
comparison
equal deleted inserted replaced
173:0a86a7a6b284 174:e9a3d405e18f
37 PASS_FORMATTING = 1 37 PASS_FORMATTING = 1
38 PASS_RENDERING = 2 38 PASS_RENDERING = 2
39 39
40 40
41 class PageRenderingContext(object): 41 class PageRenderingContext(object):
42 def __init__(self, page, uri, page_num=1): 42 def __init__(self, page, uri, page_num=1, force_render=False):
43 self.page = page 43 self.page = page
44 self.uri = uri 44 self.uri = uri
45 self.page_num = page_num 45 self.page_num = page_num
46 self.force_render = force_render
46 self.pagination_source = None 47 self.pagination_source = None
47 self.pagination_filter = None 48 self.pagination_filter = None
48 self.custom_data = None 49 self.custom_data = None
49 self.use_cache = False 50 self.use_cache = False
50 self.used_assets = None 51 self.used_assets = None
94 page_data.update(ctx.custom_data) 95 page_data.update(ctx.custom_data)
95 96
96 # Render content segments. 97 # Render content segments.
97 ctx.current_pass = PASS_FORMATTING 98 ctx.current_pass = PASS_FORMATTING
98 repo = ctx.app.env.rendered_segments_repository 99 repo = ctx.app.env.rendered_segments_repository
99 if repo: 100 if repo and not ctx.force_render:
100 cache_key = '%s:%s' % (ctx.uri, ctx.page_num) 101 cache_key = '%s:%s' % (ctx.uri, ctx.page_num)
101 page_time = page.path_mtime 102 page_time = page.path_mtime
102 contents = repo.get( 103 contents = repo.get(
103 cache_key, 104 cache_key,
104 lambda: _do_render_page_segments(page, page_data), 105 lambda: _do_render_page_segments(page, page_data),