class Liquid::Include

The ‘include` tag has been replaced by [`render`](/docs/api/liquid/tags/render).
Deprecated because the way that variables are handled reduces performance and makes code harder to both read and maintain.
@liquid_deprecated
@liquid_syntax_keyword filename The name of the snippet to render, without the `.liquid` extension.
{% include ’filename’ %}
@liquid_syntax
snippet.
Inside the snippet, you can access and alter variables that are [created](/docs/api/liquid/tags/variable-tags) outside of the
@liquid_description
Renders a [snippet](/themes/architecture#snippets).
@liquid_summary
@liquid_name include
@liquid_category theme
@liquid_type tag
@liquid_public_docs

def initialize(tag_name, markup, options)

def initialize(tag_name, markup, options)
  super
  if markup =~ SYNTAX
    template_name = Regexp.last_match(1)
    variable_name = Regexp.last_match(3)
    @alias_name         = Regexp.last_match(5)
    @variable_name_expr = variable_name ? parse_expression(variable_name) : nil
    @template_name_expr = parse_expression(template_name)
    @attributes         = {}
    markup.scan(TagAttributes) do |key, value|
      @attributes[key] = parse_expression(value)
    end
  else
    raise SyntaxError, options[:locale].t("errors.syntax.include")
  end
end

def parse(_tokens)

def parse(_tokens)
end

def render_to_output_buffer(context, output)

def render_to_output_buffer(context, output)
  template_name = context.evaluate(@template_name_expr)
  raise ArgumentError, options[:locale].t("errors.argument.include") unless template_name.is_a?(String)
  partial = PartialCache.load(
    template_name,
    context: context,
    parse_context: parse_context,
  )
  context_variable_name = @alias_name || template_name.split('/').last
  variable = if @variable_name_expr
    context.evaluate(@variable_name_expr)
  else
    context.find_variable(template_name, raise_on_not_found: false)
  end
  old_template_name = context.template_name
  old_partial       = context.partial
  begin
    context.template_name = partial.name
    context.partial = true
    context.stack do
      @attributes.each do |key, value|
        context[key] = context.evaluate(value)
      end
      if variable.is_a?(Array)
        variable.each do |var|
          context[context_variable_name] = var
          partial.render_to_output_buffer(context, output)
        end
      else
        context[context_variable_name] = variable
        partial.render_to_output_buffer(context, output)
      end
    end
  ensure
    context.template_name = old_template_name
    context.partial       = old_partial
  end
  output
end