30 07 2011 javascript Tweet
Blog rolling with mongoDB, express and Node.jsの写経だが、このエントリはわかりやすいですね。
MongoDBって使いやすそうなので、SQLiteから乗り換えようかなと思ってちょっと調べたところMongoKitはSQLAlchemyっぽいような気がしたんだけどどうなんだろうかねぇ。結局javascriptだとクラス関係ないしJSON(BSON)だからMongoとの相性がいいんだろうか?あとでもう少し調べてみよう。
さて、上のエントリのブログのサンプルで使われていたHTMLとCSSのテンプレートエンジンが面白かったので調べてみた。
Jade
zen-codingみたいなノリでサクサク書いていけるっぽい。
Jade - robust, elegant, feature rich template engine for nodejs
Hamlっぽいとか書いてあったんだけどHaml知らんからなぁ(普段はFlask+Jinja2使ってます)。
stylus
CSSをシンプルに書ける独自のスタイル指定言語らしい。構造化してすっきりと記述できるみたい。
Expressive, robust, feature-rich CSS language built for nodejs
スクリーンキャストもありますね。
CSSなんてすぐにぐちゃぐちゃになって可読性が落ちるので、CSSなんてバイナリと一緒で人が読むもんじゃないんだぜみたいな立場にたてば、DRYを保てるようなこういった仕組みは良いんだろうなと思う、っていうか良い。
モジュールをインストールするとstylusっていうコマンドがついてきて、別にNode.jsじゃなくても使えるのでFlaskで使おうかなと思っている。
こんなstylがあるとして
body font-family "Helvetica Neue", "Lucida Grande", "Arial" font-size 13px text-align center text-stroke 1px rgba(255, 255, 255, 0.1) color #555 h1, h2 margin 0 font-size 22px color #343434 h1 text-shadow 1px 2px 2px #ddd font-size 60px
コマンドラインからコンパイル
$ ../../node_modules/stylus/bin/stylus style.styl
compiled style.css
できた。
body { font-family: "Helvetica Neue", "Lucida Grande", "Arial"; font-size: 13px; text-align: center; text-stroke: 1px rgba(255,255,255,0.1); color: #555; } h1, h2 { margin: 0; font-size: 22px; color: #343434; } h1 { text-shadow: 1px 2px 2px #ddd; font-size: 60px; }