定界符 Delimiters
定界符是引擎识别「这是模板标签」的边界符号。DouView 默认用左大括号 { 与右大括号 } 包裹标签。
一、默认定界符与配置
默认左定界符 {、右定界符 },可在引擎实例上配置:
| 配置项 | 默认值 |
|---|---|
leftDelimiter |
{ |
rightDelimiter |
} |
绝大多数站点沿用默认值即可,本手册所有示例均基于 { / }。
二、输出字面定界符 {ldelim} / {rdelim}
当需要在页面里输出字面的 { 或 }(而不是当标签解析)时,用 {ldelim} / {rdelim}:
{ldelim} 输出左定界符 {
{rdelim} 输出右定界符 }
DelimTagCompiler 会把它们直接编译为当前配置的定界符字面量输出。
三、典型场景:输出 JavaScript 对象字面量
JS 里大量使用 { },若直接写在模板里会被引擎当标签解析。有两种安全写法。
方式一,用 {ldelim} / {rdelim} 逐字输出:
<script>
var cfg = {ldelim} debug: true, ver: "{$douview.version}" {rdelim};
</script>
方式二(更推荐),用 {literal} 整段保护,块内不做任何模板解析:
{literal}
<script>
var cfg = { debug: true, name: "douphp" };
</script>
{/literal}
两者的取舍:
- 段落里不需要任何模板变量 → 用
{literal},最省心; - 段落里需要混入个别变量(如上例的
{$douview.version})→ 用{ldelim}/{rdelim},或把{literal}拆开、变量部分留在块外。
关于 {literal} 的完整语义,见「原样输出 Literal」篇。