Meteorのお話です。
Node.jsではExpressでよくjadeを使っています。
なぜかjadeは好きです。RubyでHamlは使ったことがありますが、それほど好感を持った覚えはありません。なぜでしょう、%があると見栄えが悪いからでしょうか。
Meteorにもjadeのパッケージを作った人がいるようです。
https://atmospherejs.com/mquandalle/jade
これが思いのほか出来がよくて、気に入りました。 単にjadeの変換を再現しただけではなくて、Meteor用にチューンされている感じです。
インストールは、
$ meteor add mquandalle:jade
とするだけで、*.jadeファイルで書けばあとはよろしくやってくれます。上記ページに使い方は書いてありますが、いくつか転記します。
まず、テンプレート呼び出しの
{{> hello}}
は、
+hello
になります。最初はちょっと分かりにくいと思いました。慣れれば普通です。
次に、if文は、
{{if hoge}}
<div>hello</div>
{{else}}
<div>bye</div>
{{/if}
が、
+if hoge
div hello
+else
div bye
になります。この接頭辞+は省略もできるようですが、個人的には残しておいたほうが制御ブロックであることが見た目で分かりやすくてよいと思いました。else ifも独自実装しているようです。シンタックスシュガーとして。
最後にまだ実装されていないと書いてありますが、anonymous helperというのが載っています。
+if len > 0
みたいなことが書けるようになるそうです。これはとても実装されて欲しい機能です。これだけのためにhelperを書くのは手間でしょう。
以上、Meteorでjadeがすんなり使えるというお話でした。
ついでに、jade系で気になるツールを紹介します。
https://github.com/donpark/html2jade
HTMLをjadeに戻せるようです。まだ試していませんが、 これはいいですね。過去に書いたHTMLをjade化したくなります。 もし安定して使えるなら、人が書いたHTMLを一度jadeにしてから 編集して、再度HTMLに戻すということもできるかもしれません。
さらに、余談ですが、html2jadeを検索していたら、
https://github.com/vidalab/meteor-html2jade
を見つけました。何かと思ったら、html2jadeをwebで使えるようにしたMeteorアプリのようです。
コメント