如何从haml中删除此代码中的空格?

时间:2012-08-08 10:37:30

标签: ruby-on-rails-3 haml

这是代码

  .meta
    = time_ago_in_words(discussion.created_at)
    ago by
    = discussion.user.username
    |
    = link_to "Edit", edit_discussion_path(discussion), class: "meta"
    |
    = link_to "Delete", discussion_path(discussion), method: :delete, confirm: "Are you sure?", class: "meta"

这是输出:

    <div class='meta'>
      about 7 hours
      ago by
      foo
      |
      <a href="/discussions/2/edit" class="meta">Edit</a>
      |
      <a href="/discussions/2" class="meta" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Delete</a>
    </div>

这使得输出在|的任意一侧都有不平衡的空间。

是否可以删除这些语句之间的空格,而不是向所有内容添加span,或仅使用erbstring interpolation

3 个答案:

答案 0 :(得分:1)

将显式打印为Ruby String帮助吗?

.meta
  = time_ago_in_words(discussion.created_at)
  ago by
  = discussion.user.username
  = "|"
  = link_to "Edit", edit_discussion_path(discussion), class: "meta"
  = "|"
  = link_to "Delete", discussion_path(discussion), method: :delete, confirm: "Are you sure?", class: "meta"

我的意思是,它不是最好的代码,我更喜欢将字符放置为初始尝试,但由于HAML强制缩进,您可能需要采用某种不同的路径来指定空格/空格字符。我认为这样做可能会为您提供简单的精确方法,只要向任意一侧添加特定数量的空格或&nbsp;个字符(如果您需要多个)。

编辑:我注意到标题指定了“删除”空格,而不是“平衡”它 - 我的错误。因此,您可以尝试succeed,如下所述:Haml: Control whitespace around textSucceed没有后续跟踪,或者后跟空字符串,应该可以实现你想要的,没有任何空格。

编辑2:您完全正确,>修饰符不适用于ruby打印行(如link to)。成功应该仍然有效,或者你可以创建一个帮助函数,将所有这些行连接成一个字符串。

答案 1 :(得分:0)

截至目前(2012年10月21日),没有办法优雅地做到这一点。

如果您在阅读本文时有可能,请回答问题,我会将其标记为答案。

答案 2 :(得分:-5)

在adobe dreamwever和pres ctrl + f ..

中打开你的代码

写下面的代码并使用勾选正则表达式框

在查找框中:[\ r \ n] {2,}

在替换框中:\ n

n替换所有......

enjoyyyy