From e01a1bf312e7476e1edd283bae84bb611e6983dc Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Wed, 8 Jan 2020 20:33:49 +0530 Subject: [PATCH 1/2] Clear cached Liquid template scope before render --- lib/jekyll/liquid_renderer/file.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/jekyll/liquid_renderer/file.rb b/lib/jekyll/liquid_renderer/file.rb index a113e851350..72d5581a437 100644 --- a/lib/jekyll/liquid_renderer/file.rb +++ b/lib/jekyll/liquid_renderer/file.rb @@ -18,6 +18,10 @@ def parse(content) end def render(*args) + # clear assigns to `Liquid::Template` instance prior to rendering since + # `Liquid::Template` instances are cached in Jekyll 4. + @template.instance_assigns.clear + measure_time do measure_bytes do measure_counts do From 62642f064b493fd15987b70a66a9dc2ec8614469 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Thu, 9 Jan 2020 12:40:10 +0530 Subject: [PATCH 2/2] clear template assigns via a private method --- lib/jekyll/liquid_renderer/file.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/jekyll/liquid_renderer/file.rb b/lib/jekyll/liquid_renderer/file.rb index 72d5581a437..146c416d3ff 100644 --- a/lib/jekyll/liquid_renderer/file.rb +++ b/lib/jekyll/liquid_renderer/file.rb @@ -18,9 +18,7 @@ def parse(content) end def render(*args) - # clear assigns to `Liquid::Template` instance prior to rendering since - # `Liquid::Template` instances are cached in Jekyll 4. - @template.instance_assigns.clear + reset_template_assigns measure_time do measure_bytes do @@ -33,6 +31,8 @@ def render(*args) # This method simply 'rethrows any error' before attempting to render the template. def render!(*args) + reset_template_assigns + measure_time do measure_bytes do measure_counts do @@ -48,6 +48,12 @@ def warnings private + # clear assigns to `Liquid::Template` instance prior to rendering since + # `Liquid::Template` instances are cached in Jekyll 4. + def reset_template_assigns + @template.instance_assigns.clear + end + def measure_counts @renderer.increment_count(@filename) yield