2006-09-02 [長年日記]

[Q3] テンプレート中のマクロ

マクロでヒアドキュメントが使えるようになってスクリプトが書きやすくなりましたが、テンプレート中のマクロで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')-}

トップ «前の日記(2006-09-01) 最新 次の日記(2006-09-03)»