模板注释 Comment

模板注释 Comment

模板注释用于在模板源里写说明,编译后不输出到页面,也不会出现在 HTML 源码里。

一、语法

{* 这是注释内容,编译后不输出 *}

注释可跨行:

{*
    这是一段多行注释,
    常用于说明一个块的用途。
*}

二、实现机制

CommentTagCompiler 把注释编译为空片段($ctx->emit('')),仅保留其位置信息,供 assemble() 阶段处理行首换行(吞掉注释独占一行时留下的空行)。

三、模板注释 vs HTML 注释

写法 是否输出到页面 是否被引擎解析
{* ... *} 模板注释 否(编译期丢弃) 否
HTML 注释 是(除非被预过滤器还原) 取决于内容

需要「不给用户看的开发说明」用模板注释 {* *}。

四、与「HTML 注释包裹标签」的区别

注意不要把模板注释与预过滤器的「HTML 注释包裹标签」混淆:后者是把模板标签写进 HTML 注释里,预过滤器会把注释去掉、激活里面的标签(便于模板直接用浏览器预览),与本篇「编译期整体丢弃」的模板注释是两回事。详见「预过滤器 Prefilter」篇。

添加日期: