空白压缩 Strip

空白压缩 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}。
添加日期: