10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/services/plum/liquid_renderer.rb', line 10
def render_template(template_name, context = {})
theme = current_theme(context)
resolver = ThemeResolver.new
template_path = resolver.find_template(theme, template_name)
raise "Template not found: #{template_name}" unless template_path
template_content = File.read(template_path)
template = Liquid::Template.parse(template_content)
registers = render_registers(context)
rendered_content = template.render(context, filters: [ LiquidFilters ], registers: registers)
layout_path = resolver.find_layout(theme)
if layout_path
layout_content = File.read(layout_path)
layout = Liquid::Template.parse(layout_content)
layout.render(context.merge("content" => rendered_content), filters: [ LiquidFilters ], registers: registers)
else
rendered_content
end
end
|