Sha256: 46058e087d8e2c53f962227a1b0a370acb479078c7417c1b01eba2594cd42434
Contents?: true
Size: 952 Bytes
Versions: 5
Compression:
Stored size: 952 Bytes
Contents
# frozen_string_literal: true module Liquid # Capture stores the result of a block into a variable without rendering it inplace. # # {% capture heading %} # Monkeys! # {% endcapture %} # ... # <h1>{{ heading }}</h1> # # Capture is useful for saving content for use later in your template, such as # in a sidebar or footer. # class Capture < Block Syntax = /(#{VariableSignature}+)/o def initialize(tag_name, markup, options) super if markup =~ Syntax @to = Regexp.last_match(1) else raise SyntaxError, options[:locale].t("errors.syntax.capture") end end def render_to_output_buffer(context, output) context.resource_limits.with_capture do capture_output = render(context) context.scopes.last[@to] = capture_output end output end def blank? true end end Template.register_tag('capture', Capture) end
Version data entries
5 entries across 5 versions & 1 rubygems