変なものシリーズその2、XML DSL
さすがにこれはアイデア倒れになると思うだけど、ていうかアイデア倒れにしたいのだけれど、XML DSL(or XMLBuilder)というのを思いついた。
$
{html lang:"ja"}
{head}
{meta 'http-equiv':"Content-Type", content:"text/html; charset:EUC-JP"}
{body}
{ul}
{li text:"item1"}
{li text:"item2"}
{_ul}
{_body}
{_html}
GroovyでリテラルとしてXML(のようなもの)を書くためのDSLですよ。MarkupBuilderの対抗商品ですよ。$は誤植じゃなくて、複数のクロージャ引数をとるメソッド。ネスト管理が面倒くさいけどやればやれるはず。「<a>テキスト</a>」のところをうまく表現するところが(無意味に)難しい。「{a}"テキスト"{_a}」ならAST変換を組み合わせると何とか実現できるかな。