2010-03-04 102 views
3

有没有一种方法来指定HTML标签周围的“漂亮打印”式格式?我希望能够把HTML块之间的空白,所以这样的:HAML中的标签之间的空白空间

<!-- 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个换行符?或者,甚至可能是~本身,但不起作用。

+0

我对这个个人的看法是那生成的HTML不适合人阅读,但对于机器来说,空白不应该有任何区别。为了调试文档结构,Firebug/Web Inspector类型工具更加有用,特别是对于HAML,您无需担心生成的HTML的有效性。因此,为什么要担心呢?正如我所说,这是国际海事组织,并没有回答你的问题...... :) – deceze 2010-03-04 04:26:24

回答

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

haml_concat辅助直接串接文本到输出缓冲器,而无需任何种类的预处理。

+0

它是!谢谢 :) – 2010-03-04 09:43:14

1

可以evaluate Ruby block插入额外的换行符:

.main 
    .container 
    %p Something 

    ~ "\n" * 5 

    .footer 
    %p Footer 

这也采用~ - whitespace preservation

+0

我试图,但它并不实际输出标签之间的5行HTML,只是1:/。目前你必须在每一行都有5〜1个,这使得一切都变得模糊不清。 – 2010-03-04 05:18:40

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

\#footer