Class: Nanoc::Filters::Handlebars

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

Overview

Since:

Constant Summary

Constant Summary

Constants inherited from Nanoc::Filter

Nanoc::Filter::TMP_BINARY_ITEMS_DIR

Instance Attribute Summary

Attributes inherited from Nanoc::Filter

#assigns

Instance Method Summary (collapse)

Methods inherited from Nanoc::Filter

#depend_on, #filename, from_binary?, #initialize, #output_filename, requires, setup, #setup_and_run, to_binary?, type

Methods included from PluginRegistry::PluginMethods

#all, #identifier, #identifiers, #named, #register

Methods inherited from Context

#get_binding, #initialize

Constructor Details

This class inherits a constructor from Nanoc::Filter

Instance Method Details

- (String) run(content, _params = {})

Runs the content through Handlebars using Handlebars.rb. This method takes no options.

Parameters:

  • content (String)

    The content to filter

Returns:

  • (String)

    The filtered content

Since:

  • 3.4.0



16
17
18
19
20
21
22
23
24
25
26
27
28
# 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