2010-04-26 71 views
4

我是haml的新手,所以我仍然试图找出格式化。Haml格式化

我有一个index.haml文件,下面的代码。

%h1 
    Welcome to Solidarity 

Hello, 
= @profile.first_name 
! 

它呈现这样的:

欢迎团结
你好,用户!

这里的页面的源代码:

<h1> 
    Welcome to Solidarity 
</h1> 
Hello, 
frances 
! 

它@ profile.first_name和感叹号之间的空间。这是为什么?而且,我该如何解决它?

回答

5
%h1 Welcome to Solidarity 
Hello, #{@profile.first_name}! 
Please #{link_to 'post a comment', new_comment_path}! 

成为

<h1>Welcome to Solidarity</h1> 
Hello, John! 
Please <a href="/comments/new">post a comment</a>! 

请记住,在轨道2与Haml的2,必须正确HTML转义任何你发送到浏览器(HT NEX3):

Hello, #{h @profile.first_name}! 

在Rails 3和Haml 3中,默认情况下所有内容都会被删除,因此您可以简单地执行以下操作:

Hello, #{@profile.first_name}! 
+0

谢谢! 另外,同样,link_to调用最后还有额外的空间。这些如何解决? – user5243421 2010-04-26 04:14:48

+1

编辑我的答案,添加一个'link_to'的例子。 – yfeldblum 2010-04-26 04:55:22

+1

不要忘记用HTML转义用户名! – 2010-04-26 07:28:18

5

您也可以使用“短吻鳄”在标签之前或之后“吃”空白区域。从haml-lang docs

%img 
%pre>< 
    foo 
    bar 
%img 

被编译为:

<img /><pre>foo 
bar</pre><img /> 

虽然这也曾在这里解决您的问题,由司法部给出的解决方案是这种情况下适当的标记。只是想我会提到它。