How to use CoffeeScript with nanoc

Step 1: Add coffee-script to Gemflie:

  gem 'coffee-script'

Step 2: Add coffee_filter.rb file to lib folder:

  require 'coffee-script'

  class CoffeeFilter < Nanoc3::Filter
    identifier :coffee

    def run(content, params = {})
      CoffeeScript.compile(content)
    end
  end

Step 3: Add new rules to Rules file for compiling coffee-script files into javascript files:

  compile '/assets/coffee/*/' do
    filter :coffee
  end

  # so that the /assets/coffee/ item is copied to /javascripts/ item
  route '/assets/coffee/*/' do
    item.identifier.sub(%r{^/assets/coffee}, '/javascripts').chop + '.js'
  end

Step 4: Create your first coffescript file in source/assets/coffee directory:

  # test.coffee

  notify -> alert "Hello, user!"

  notify()

Step 5: Compile your web site.

  nanoc3 compile

Compiled javascript files should be located in javascrips folder.

If you want to use coffee-script inside your haml partials, include this gem into ‘Gemfile’:

  gem 'coffee-filter'

And include this fragment into partial:

:coffeescript
  window.notify = () -> alert 'Hello, user!'