模板注释 Comment
模板注释用于在模板源里写说明,编译后不输出到页面,也不会出现在 HTML 源码里。
一、语法
{* 这是注释内容,编译后不输出 *}
注释可跨行:
{*
这是一段多行注释,
常用于说明一个块的用途。
*}
二、实现机制
CommentTagCompiler 把注释编译为空片段($ctx->emit('')),仅保留其位置信息,供 assemble() 阶段处理行首换行(吞掉注释独占一行时留下的空行)。
三、模板注释 vs HTML 注释
| 写法 | 是否输出到页面 | 是否被引擎解析 |
|---|---|---|
{* ... *} 模板注释 |
否(编译期丢弃) | 否 |
| HTML 注释 | 是(除非被预过滤器还原) | 取决于内容 |
需要「不给用户看的开发说明」用模板注释 {* *}。
四、与「HTML 注释包裹标签」的区别
注意不要把模板注释与预过滤器的「HTML 注释包裹标签」混淆:后者是把模板标签写进 HTML 注释里,预过滤器会把注释去掉、激活里面的标签(便于模板直接用浏览器预览),与本篇「编译期整体丢弃」的模板注释是两回事。详见「预过滤器 Prefilter」篇。