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 content/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!'

Click here to execute compiled javascript file from coffescript file on this page.