{literal} タグに囲まれたデータのブロックは、
リテラルとして認識されます。これは一般的に、Javascript やスタイルシートなどで
中括弧がテンプレートの
デリミタ
として解釈されるとまずい場合に使用します。
{literal}{/literal} タブの内部は解釈されず、
そのままで表示されます。{literal}
ブロック内にテンプレートタグを含める必要がある場合は、代わりに
{ldelim}{rdelim}
で個々のデリミタをエスケープしてください。
{literal}{/literal} タグは通常は不要です。Smarty は、
空白文字で囲まれたデリミタを無視するからです。
Javascript や CSS で波括弧を使う場合は両側に空白文字を入れるようにしましょう。
これは、Smarty 3 以降の新しい挙動です。
Example 7.56. {literal} タグ
<script>
// 次の波括弧は Smarty では無視されます。
// 空白文字で囲まれているからです。
function myFoo {
alert('Foo!');
}
// こちらは、リテラルとして扱うエスケープが必要です
{literal}
function myBar {alert('Bar!');}
{/literal}
</script>
{ldelim} {rdelim}
および
Smarty の構文解析を回避
のページも参照してください。