lib/locomotive/steam/liquid/template.rb
module Locomotive
module Steam
module Liquid
class Template < ::Liquid::Template
# When we render a Locomotive template, we need to know what are
# the default content of all the editable elements.
# Without this, developers are unable to use statements like
# the following: {{ page.editable_elements.content.header.title }}
def render(*args)
if args.first && args.first.is_a?(::Liquid::Context)
content = @options[:default_editable_content]
args.first.registers[:default_editable_content] = content
end
super
end
class << self
def parse(source, options = {})
template = new
template.parse(source, options.merge({
line_numbers: true
}))
end
end
end
end
end
end