定界符 Delimiters

定界符 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」篇。

添加日期: