Class: Nanoc::Filters::Handlebars Private

Inherits:
Nanoc::Filter
  • Object
show all
Defined in:
lib/nanoc/filters/handlebars.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Method Summary collapse

Instance Method Details

#run(content, _params = {}) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

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

Parameters:

  • content (String)

    The content to filter

Returns:

  • (String)

    The filtered content



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/nanoc/filters/handlebars.rb', line 18

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::Handlebars.new
  template = handlebars.compile(content)
  template.call(context)
end