Express の標準テンプレートエンジンは jade ですが、あの html の閉じタグを毎回書くのがぼくは好きになれません。
そこで、 haml をテンプレートエンジンとして利用するようにしてみようと思います。
これについては Express のガイドページにもやり方が書いてあります。
http://expressjs.com/guide.html
まず、 hamljs をインストールします。
$ npm install hamljs
そして Express を使うときに設定を行います。
# app.coffee app = require('express').createServer() app.register '.haml', require('hamljs')
閉じタグを書かなくてすむのはとてもすばらしいですね!
さて、これで haml を利用できるようになったわけですが、テンプレート中に書く JavaScript 部分も CoffeeScript を使ってお手軽に書けるようにしてみたいと思います。
haml には filter という機能があって、独自にコンパイラを指定できます。
この辺りは ruby の haml でも同じですね。
# app.coffee
app = require('express').createServer()
coffee = require 'coffee-script'
hamljs = require 'hamljs'
hamljs.filters.coffee = (str) ->
@javascript coffee.compile(str)
app.register '.haml', require('hamljs')こうしておくと、haml のテンプレート中で CoffeeScript を書けるようになります。
%head :coffee jQuery ($) -> alert "Generated from 'CoffeeScript'!"
すっきりと書けますね!
すばらしい!!