{literal}
{literal}
可以让一个模板区域的字符原样输出。 这经常用于保护页面上的Javascript或css样式表,避免因为Smarty的定界符{语法}而错被解析。 在{literal}{/literal}
内的任何标签都不会被解析,原样输出。 所以如果你有需要放到{literal}
内的标签,首先可以考虑是否用 {ldelim}{rdelim}
来代替定界符在页面上的显示(不用{literal})。
Note
因为Smarty会忽略那些带空格的定界符,所以通常不需要使用{literal}{/literal}
,。 请确定你的Javascript或者CSS样式表的大括号周围是有空格的。这是Smarty 3的新特性。
- <script>
- // the following braces are ignored by Smarty
- // since they are surrounded by whitespace
- function myFoo {
- alert('Foo!');
- }
- // this one will need literal escapement
- {literal}
- function myBar {alert('Bar!');}
- {/literal}
- </script>
参见 {ldelim} {rdelim}
和 避免Smarty解析。
原文: https://www.smarty.net/docs/zh_CN/language.function.literal.tpl