CSS非拡張ツール Wlite 0.2.0 リリース
最近、LESSとかSCSSとかCSS系のメタ言語が流行っています。特にSCSSの拡張機能Compassのベンダープレフィックスとかすごくいい感じです。ほしい……。
でも、イマイチ踏みきれない点があります。それは
いつまで言語として生き続けるかわからない
ことです。この手のDSLにはよくある問題ですが、10年後もそのメタ言語で書いたソースコードを維持し続けることはできるのだろうか、と考えるとなかなか手を出しづらいのが実情です。特に今は勃興期で、どれがスタンダードになるかわかりません。
そんなわけで(どんなわけだ)Wlite(ウィライト)という新たなツールを作ってみました*1。このツールの特徴は、次の通りです。
文法はCSSのサブセット
文法はあくまで普通のCSSです。CSSは仕様上、結構適当な文法でも大丈夫なので、ちょっとだけチェックを厳しくしてます。例えば、次のような場合でもCSSはエラーになりませんが、Wliteではエラーにしてます。
また、次のような場合は警告を出すようにしています。
- キーワードにエスケープされた文字や大文字を含む
レガシーブラウザ対応
古いIE用に opacity を filter:alpha(opacity=X) に変換します。また、@-wlite-legacy-support という拡張ルールを使うことで、ブロックの中に書かれたCSSにCSSハックを自動適用します(値として指定できるのは、ie6、ie7、ie8、modernの4つのみです)。
@-wlite-legacy-support ie6, ie7 { table { width: 100%; } }
使い方
java -cp "wlite-0.2.0.jar:antlr-runtime-4.0.jar" net.arnx.wlite.css.CssCompiler [-o dest] [-encoding encoding] src ...
最近、話題になっている機能はひと通り実装してみたつもりですが、こんな機能が足りないんだけど、みたいな話があれば教えていただきたく。
今後の予定としては、以下の機能追加を予定していますが時間が(以下略)