HAML中标签之间的空白

时间:2010-03-04 03:36:29

标签: ruby formatting whitespace haml

有没有办法在HTML标签周围指定“漂亮打印”的格式?我希望能够在HTML块之间放置空格,所以:

<!-- container -->
<div id='container'>
</div>
<!-- footer -->
<div id="footer">
</div>
<!-- analytics -->
...

...转换为:

<!-- container -->
<div id='container'>
</div>


<!-- footer -->
<div id="footer">
</div>


<!-- analytics -->
...

我知道你可以用/做评论,是否有类似标签之间的空白?也许是这样的

/ container
#container
\
\
/ footer
#footer
:s
:s
/ analytics

\:s可以是自定义过滤器吗?

甚至像= space(10)这样的10个换行符?或者甚至可能~本身,但这不起作用。

4 个答案:

答案 0 :(得分:5)

#container
- haml_concat("\n" * 5)
#footer

haml_concat帮助器直接将文本连接到输出缓冲区,无需任何预处理。

答案 1 :(得分:1)

您可以evaluate Ruby block插入其他换行符:

.main
  .container
    %p Something

  ~ "\n" * 5

  .footer
    %p Footer

这也使用~ - whitespace preservation

答案 2 :(得分:0)

\#container  
= ('< br />'*5).html_safe 

\#footer

答案 3 :(得分:0)

我为这种事写了特殊的过滤器:https://gist.github.com/dmitry/6050231

要使用is,您只需添加:s,就像在您的示例中一样:

#footer
:s
:s
/ analytics