マクロでヒアドキュメントが使えるようになってスクリプトが書きやすくなりましたが、テンプレート中のマクロでJavaScriptを書くと、{と}をエスケープする必要があって書きづらいです。たとえばこんな感じです。
{@Script(<<END
function foo() {{
var s = "foo";
for (var n = 0; n < 10; ++n) {{
if (n % 2 == 0) {{
s += n;
}}
}}
return s;
}}
result.value = foo();
END
, 'JScript')}
ブロックを書くたびに{{と}}にするのはしんどいので、{-と-}でもマクロを括れるようにしました。こちらで括ると{と}は単独で書けるようになります。上の例だとこんな感じです。
{-@Script(<<END
function foo() {
var s = "foo";
for (var n = 0; n < 10; ++n) {
if (n % 2 == 0) {
s += n;
}
}
return s;
}
result.value = foo();
END
, 'JScript')-}