class Nanoc::Filters::Handlebars

@since 3.4.0

@api private

Public Instance Methods

run(content, _params = {}) click to toggle source

Runs the content through [Handlebars](handlebarsjs.com/) using [Handlebars.rb](github.com/cowboyd/handlebars.rb). This method takes no options.

@param [String] content The content to filter

@return [String] The filtered content

# File lib/nanoc/filters/handlebars.rb, line 16
def run(content, _params = {})
  context = item.attributes.dup
  context[:item]   = assigns[:item].attributes
  context[:config] = assigns[:config]
  context[:yield]  = assigns[:content]
  if assigns.key?(:layout)
    context[:layout] = assigns[:layout].attributes
  end

  handlebars = ::Handlebars::Context.new
  template = handlebars.compile(content)
  template.call(context)
end