逗号在HAML中以单行分隔

时间:2011-11-04 04:13:20

标签: haml

使用HAML,我希望在一行中包含逗号,其中包含逗号。像这样,

Check me out on GitHub, Twitter, Coderwall and LinkedIn.

这就是我所拥有的:

%footer
  Check me out on
  %a{:href => url('http://github.com/bostonaholic')} Github
  ,
  %a{:href => url('http://www.twitter.com/bostonaholic')} Twitter
  ,
  %a{:href => url('http://coderwall.com/bostonaholic')} Coderwall
  and
  %a{:href => url('http://www.linkedin.com/in/mboston')} LinkedIn
  \.

但是这样就出现了:

Check me out on GitHub , Twitter , Coderwall and LinkedIn .

如何解决此问题,以便逗号和句号位于正确的位置?

感谢。

3 个答案:

答案 0 :(得分:5)

这是HAML中一个长期存在的巨大问题。我已经用两种不同的方式解决了这个问题。

1)我把我想要的文字放在数组元素中,并使用

join(', ')

但这是一种非常糟糕的做事方式。

2)仅限HAML"解决方案"在于特殊的>字符。 > character删除输出html中的空格,以便在输出此标记之前或之后没有空格。

这是我能够想到的最好的,而且我晚上睡不着觉,因为它可怕的丑陋。

  %a{:href => 'here'} Github
  %span> , 
  %a{:href => 'there'} Twitter

关于这最后一项技术的说明。

一个。如果你不使用& nbsp;即使您的源代码中存在空格,您也不会获得空间。使用引号(%span>#{","})和空格不起作用,因为显然HAML会修剪输出。

湾您必须使用标记,因为使用>据我所知,只有在标签后才能使用。使用=>遗憾的是不行。这是我推荐的方法,但它无法解决最后丢失的空间。

3)在我的rails项目中,我使用了以下部分和帮助的组合:

partial:_haml_comma.html.haml

%span> , 

helper.rb

  def comma
    render :partial => "shared/haml_comma"
  end

.haml文件:

  %a{:href => 'here'} Github
  = comma
  %a{:href => 'there'} Twitter

答案 1 :(得分:5)

HAML已使用succeed帮助程序考虑了此案例。文档:http://haml.info/docs/yardoc/Haml/Helpers.html#succeed-instance_method

这个HAML

click
= succeed '.' do
  %a{:href=>"thing"} here

产生

click
<a href='thing'>here</a>.

答案 2 :(得分:1)

使用haml'reccess'帮助器(感谢@josal),这是一个干净,简单的方法:

%footer
  Check me out on
  = succeed ',' do
    %a{:href => url('http://github.com/bostonaholic')} Github
  = succeed ',' do
    %a{:href => url('http://www.twitter.com/bostonaholic')} Twitter
  = succeed 'and' do
    %a{:href => url('http://coderwall.com/bostonaholic')} Coderwall
  = succeed '.' do
    %a{:href => url('http://www.linkedin.com/in/mboston')} LinkedIn

我发现我唯一需要的时候就是使用链接,但这是一个很好的工具,可以放在你的腰带里。