diff --git a/lib/liquid/partial_cache.rb b/lib/liquid/partial_cache.rb index 56e108050..581f72841 100644 --- a/lib/liquid/partial_cache.rb +++ b/lib/liquid/partial_cache.rb @@ -16,6 +16,13 @@ def self.load(template_name, context:, parse_context:) template = template_factory.for(template_name) partial = template.parse(source, parse_context) + + partial.name ||= if Template.file_system.respond_to?(:actual_template_name) + Template.file_system.actual_template_name(template_name) + else + template_name + end + cached_partials[template_name] = partial ensure parse_context.partial = false diff --git a/lib/liquid/tags/include.rb b/lib/liquid/tags/include.rb index d451a6360..98f64fdbc 100644 --- a/lib/liquid/tags/include.rb +++ b/lib/liquid/tags/include.rb @@ -72,11 +72,7 @@ def render_to_output_buffer(context, output) old_partial = context.partial begin - context.template_name = if Template.file_system.respond_to?(:actual_template_name) - Template.file_system.actual_template_name(template_name).delete_suffix('.liquid') - else - template_name - end + context.template_name = partial.name if partial.name context.partial = true context.stack do diff --git a/lib/liquid/tags/render.rb b/lib/liquid/tags/render.rb index a29c36229..4f2dfafa5 100644 --- a/lib/liquid/tags/render.rb +++ b/lib/liquid/tags/render.rb @@ -77,11 +77,7 @@ def render_tag(context, output) render_partial_func = ->(var, forloop) { inner_context = context.new_isolated_subcontext - inner_context.template_name = if Template.file_system.respond_to?(:actual_template_name) - Template.file_system.actual_template_name(template_name).delete_suffix('.liquid') - else - template_name - end + inner_context.template_name = partial.name if partial.name inner_context.partial = true inner_context['forloop'] = forloop if forloop diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 39bde8338..e20ec1e0f 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -15,7 +15,7 @@ module Liquid # template.render('user_name' => 'bob') # class Template - attr_accessor :root + attr_accessor :root, :name attr_reader :resource_limits, :warnings class TagRegistry diff --git a/test/test_helper.rb b/test/test_helper.rb index ed55ec409..840b888a8 100755 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -233,6 +233,6 @@ def read_template_file(template_name) end def actual_template_name(template_name) - @snippets[template_name][:actual_template_name] + @snippets[template_name][:actual_template_name].delete_suffix(".liquid") end end