在Smarty中删除多余的HTML空格 [英] Remove extra HTML spaces in Smarty

查看:10
本文介绍了在Smarty中删除多余的HTML空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在所有前端模板中大量使用Smarty。我观察到以下情况:

当我的Smarty模板类似如下:

<li>
    {if $a == 'A'}
        {$var1}
    {else}
        {$var2}
    {/if}
    <br><span>SUBTEXT</span>
</li>

交付给浏览器的最终HTML为:

<li>
                            65
                        <br><span>SUBTEXT</span>
        </li>

我希望它更干净,大概是:

<li>
    65<br><span>SUBTEXT</span>
</li>

或更好:

<li>65<br><span>SUBTEXT</span></li>
无论如何,我可以使用Smarty 3中的一些配置设置来完成此操作吗?是否有任何设置来格式化和清除创建的最终HTML?

谢谢

推荐答案

可以加载输出筛选器trimwhitespace。它删除了HTML注释(ConditionalComments除外),并将除<script><pre><textarea>以外的任何位置的多个空格减少为一个空格。

通过更改第62行,您可以轻松地使过滤器删除<two> <tags>之间的空格。更改

'#(:SMARTY@!@|>)s+(?=@!@SMARTY:|<)#s' => '1 2',

'#(:SMARTY@!@|>)s+(?=@!@SMARTY:|<)#s' => '12',

您完成了。

输出筛选器在呈现模板之后、在将模板发送到浏览器之前运行。{strip}在模板处理之前运行--这是编译时的事情。因此,以下

{$some_var = "Hello
world"}
{strip}
  -
  {$}
  -
{/strip}

将输出

-hello
world-

而outputFilter将返回

- hello world -

这篇关于在Smarty中删除多余的HTML空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆