From 67380a273888abaef96a1f37239e6a5f9eda8205 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Mon, 13 Apr 2020 13:19:15 +0530 Subject: [PATCH] Clear cached Liquid template scope before render (#7967) Merge pull request 7967 --- 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