From de89a60b3a502ef4d92d647c52e13de6f3871abc Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Sun, 26 Apr 2020 20:00:17 +0530 Subject: [PATCH] Backport #7967 for v4.0.x (#8141) Clear cached Liquid template scope before render This backports 67380a2 to 4.0-stable --- lib/jekyll/liquid_renderer/file.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/jekyll/liquid_renderer/file.rb b/lib/jekyll/liquid_renderer/file.rb index a113e851350..146c416d3ff 100644 --- a/lib/jekyll/liquid_renderer/file.rb +++ b/lib/jekyll/liquid_renderer/file.rb @@ -18,6 +18,8 @@ def parse(content) end def render(*args) + reset_template_assigns + measure_time do measure_bytes do measure_counts do @@ -29,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 @@ -44,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