逗号在HAML中以单行分隔

Mat*_*ton 5 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
  \.
Run Code Online (Sandbox Code Playgroud)

但这就是这样的:

Check me out on GitHub , Twitter , Coderwall and LinkedIn .
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

pix*_*rth 5

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

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

join(', ')
Run Code Online (Sandbox Code Playgroud)

但这是一种非常害羞的做事方式.

2)HAML唯一的"解决方案"在于特殊的>字符.>字符删除输出html中的空格,因此在输出此标记之前或之后没有空白.

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

  %a{:href => 'here'} Github
  %span> , 
  %a{:href => 'there'} Twitter
Run Code Online (Sandbox Code Playgroud)

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

一个.如果你不使用  即使源代码中有空格,也不会占用空间.使用引号(%span>#{","})和空格不起作用,因为显然HAML会修剪输出.

湾 你必须使用一个标签,因为使用>只能在标签之后工作,据我所知.遗憾的是,使用=>不起作用.这是我推荐的方法,但它无法解决最后丢失的空间.

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

partial:_haml_comma.html.haml

%span> , 
Run Code Online (Sandbox Code Playgroud)

helper.rb

  def comma
    render :partial => "shared/haml_comma"
  end
Run Code Online (Sandbox Code Playgroud)

.haml文件:

  %a{:href => 'here'} Github
  = comma
  %a{:href => 'there'} Twitter
Run Code Online (Sandbox Code Playgroud)


jos*_*sal 5

HAML已经与succeed帮助者一起考虑了这个案例.文档:http://haml.info/docs/yardoc/Haml/Helpers.html#succeed-instance_method

这个HAML

click
= succeed '.' do
  %a{:href=>"thing"} here
Run Code Online (Sandbox Code Playgroud)

产生

click
<a href='thing'>here</a>.
Run Code Online (Sandbox Code Playgroud)