在Smarty中删除多余的HTML空格 [英] Remove extra HTML spaces in Smarty
本文介绍了在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屋!
查看全文