代码之家  ›  专栏  ›  技术社区  ›  Ethan Turkeltaub

同一行上有多个haml元素

  •  11
  • Ethan Turkeltaub  · 技术社区  · 14 年前

    我想在同一行有两个haml元素。例如:

    %h1 %a{:href => '/'} Professio.

    那不管用。如果没有波金,我怎么能让这样的东西工作呢?

    4 回复  |  直到 8 年前
        1
  •  5
  •   Kelly edtsech    12 年前

    不幸的是,不能将两个haml元素放在同一行。

    通过使用内联html元素可以实现类似的功能:

    %h1 <a href='/'>Lorem ipsum</a>
    

    你为什么不喜欢这种格式?

    %h1 
      %a{:href => '/'} Professio.
    

    另一个选择是编写特殊的“helper”方法(生成html链接)。例如,在Rails中的链接:

    %h1= link_to 'Professio', root_url
    
        2
  •  17
  •   Linh Dam    8 年前

    回答晚了,但我自己也在解决同样的问题,我知道哈姆有办法把这作为语言的一部分。见 White Space Removal section of the HAML reference .

    你可以这样做:

    %h1<
      %a{ :href => '/' } Professio.
    

    或者这样:

    %h1
      %a{ :href => '/' }> Professio.
    
        3
  •  5
  •   a.s.panchenko    9 年前

    哈姆不能这么做。 Slim 罐头:

    h1: a( href='/' ) Professio.
    

    同:

    h1
      a( href="/ ) Professio
    

    你可以根据需要写尽可能深的树:

    ul.nav
      li.active: a( href="/home" ):    strong Home
      li:        a( href="/contact" ): span   Contact
    

    Jade 也有类似的语法和支持此功能,但它是为node.js环境设计的。

        4
  •  2
  •   Kevin Cox    10 年前

    如果您希望将html保存在同一行上,可以尝试以下方法:

    irb> print Haml::Engine.new("%h1<\n  %a{:href => '/'} Profession.").render()
    <h1><b href='/'>Profession.</a></h1>
    

    在这里找到: HAML whitespace removal

    [编辑:我知道上面写着b-ref…]