2012-02-29 131 views
5

我在HAML输入文字:HAML添加轨的link_to后点之前删除空格,MAIL_TO

Blab bla for any questions contact us on [email protected] 

所以HAML看起来像

%p 
    Blab bla for any questions contact us on 
    = mail_to '[email protected]' 
    . 

注.在ASCII码点,我也可以替换该行与= '.'(渲染串点)

,但呈现的文本看起来像

Blab bla for any questions contact us on [email protected] . 

不同的是在最后

点之前空白解决方案我想出了和作品是

%p 
    Blab bla for any questions contact us on 
    = mail_to('[email protected]') + '.' 

这只是我正在寻找最佳实践:) thx

回答

10

我会使用这样的:

%p 
    Blab bla for any questions contact us on #{mail_to('[email protected]')}. 

另见the Haml FAQ

表达文档的结构和表达内嵌格式是两个完全不同的问题。 Haml主要是为结构设计的,所以处理格式的最好方法是将其留给其他专门为它设计的语言。

在这种情况下,您不需要其他语言,只需插入函数即可。

+0

这是一个史诗般的胜利:)!谢谢。链接也很有帮助。 – equivalent8 2012-02-29 15:57:30

+0

还有一个问题是,当使用任何ruby框架(sinatra,padrino f.e.)时,这仅仅是本地轨道事件,或者默认情况下由haml支持? – equivalent8 2012-02-29 16:01:38

+0

@ equivalent8这是正常的Haml行为:http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#ruby_interpolation_ – matt 2012-02-29 17:53:02

5

如果你使用的==符号,与MAIL_TO行了,你应该能够做你想做的,这likle:

== #{mail_to '[email protected]'}. 

==符号进行整条生产线插补。

+0

是的,这是工作,它比我的解决方案更优雅。请问有什么其他的解决方案:) – equivalent8 2012-02-29 13:02:45

3

HAML有a bunch of helpers很容易解决这种情况。 succeed解决了拖尾点问题。

= succeed '.' do 
    = link_to t('info.terms'), info_path(:terms)