空白压缩 Strip
{strip} 用于去除块内 HTML 标签之间的多余空白(换行、缩进、连续空格),压缩输出体积。
一、语法
{strip}
...
{/strip}
二、示例
{strip}
<table>
<tr>
<td>内容</td>
</tr>
</table>
{/strip}
渲染后块内标签间的换行与缩进被折叠,输出更紧凑的 HTML。
三、实现机制
{strip} 不在标签编译器里直接改文本,而是以哨兵标记 {strip} / {/strip} 标出块边界,空白折叠由 CodeGenerator::assemble() 在拼装阶段统一处理:
- 进入最外层
{strip}时,把$ctx->additionalNewline置空,块内标签后不再追加换行; - 支持嵌套(用
stripDepth计数),只有最外层的开 / 闭才真正下哨兵标记; - 退出最外层时恢复换行追加。
四、使用建议
- 适合包裹纯展示的大段 HTML(表格、列表、导航),减少源码缩进带来的多余空白;
- 注意:
{strip}会折叠块内标签之间的空白,若某些空白有语义(如行内元素间需要的空格、<pre>预格式内容),不要把那部分包进{strip}; - 需要原样保留空白与格式的 JS / CSS 段,应用
{literal}保护(见「原样输出 Literal」篇),而不是{strip}。