【问题标题】:Freemarker white space strippingFreemarker 空白剥离
【发布时间】:2014-03-07 02:34:20
【问题描述】:

Freemarker documentation 说:

实际上,这意味着您可以在宏之间放置空行 定义和分配作为间距以获得更好的可读性,没有 将不必要的空行(换行符)打印到输出。

当我渲染模板时

Start
<#assign var1 = "Foo"/>

<#assign var2 = "Bar"/>
End

结果是

Start
End

即两个分配之间的换行符被剥离。根据文档,这是我所期望的。但是,渲染一个稍微修改的模板

Start
<#assign var1 = "Foo"/>

<#assign var2>
Bar
</#assign>
End

似乎没有删除换行符:

Start

End

这是一个错误还是我误解了文档?我正在使用 Freemarker 2.3.20。

【问题讨论】:

  • 试试&lt;#assign var2&gt;Bar&lt;/#assign&gt;
  • &lt;#assign var2&gt;Bar&lt;/#assign&gt; 给出相同的结果(未删除换行符)。
  • 嗨!您是否尝试过使用 #compress> ?我正在寻找另一个问题的解决方案,我发现了这个:freemarker.org/docs/dgui_misc_whitespace.html希望它对你有帮助!
  • @adiego73:compress 指令不同,因为它适用于生成的输出,而不是模板。我的观点是,空白剥离似乎不适用于 block-#assign。 ddekany 确认这是一个错误(见下文)。无论如何,感谢您的努力。

标签: freemarker


【解决方案1】:

文档意味着您可以在这些指令之间添加空行以获得更好的可读性,而无需在输出中添加额外的换行符。此外,这些指令之后的换行符 被删除。在您的第一个示例中,换行符位于“开始”行的末尾。

block-#assign#assign 之间没有删除空格是一个错误。

【讨论】:

  • 那么我应该提交错误报告吗?
  • 当然,至少不会被遗忘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 2010-10-17
  • 2017-08-23
  • 1970-01-01
相关资源
最近更新 更多