修剪模板 - 删除块标记周围的空格

时间:2015-01-02 05:32:22

标签: html ruby-on-rails haml slim-lang

我正在尝试新项目中的Slim模板(在使用Haml一段时间之后)。虽然整体体验很棒,但我遇到的问题是,空格总是插在通常使用display: block的标签周围

说,

ul.ampm
  li.am am
  li.pm pm

生成

<ul class="ampm">
  <li class="am">
    am
  </li>
  <li class="pm">
    pm
  </li>
</ul>

,而

.ampm
  span.am am
  span.pm pm

生成

<div class="ampm">
  <span class="am">am</span></span class="pm">pm</span>
</div>

通常情况下,这不是一个大问题,但我们使用的响应式布局将display: inline-block应用于li个标签;显然,它们之间有空格会打破布局。

我知道

Slim::Engine.options[:pretty] = true

选项(打开它会删除有问题的空白),但它会使所有生成的源难以阅读,而不仅仅是我想修复的部分。

Slim中的

<>似乎与我需要的相反 - 它们旨在用于在内联标记周围添加空格。

因此...

  • 是否可以删除Slim中单个块标签周围的空格,类似于HAML空白食客? (没有关闭漂亮选项的影响,那就是)
  • 如果没有,它是一个基本的Slim限制(“设计”)或路线图中的某些东西,将来可能实施吗?

非常感谢。

1 个答案:

答案 0 :(得分:2)

我通过在关键位置恢复inline HTML来解决这个问题。对我来说,它正在向options添加select的集合:

select
  - my_collection.each do |item|
  <option value="#{item.id}">#{item.name}</option>

我可以在真正重要的少数情况下忍受这一点(正如option元素中为我所做的那样)。但是,如果您需要在整个代码中使用更好的空白,我认为您运气不好。

  

这是一个基本的Slim限制(&#34;设计&#34;)或路线图中的某些内容,将来可能实施?

我要去&#34;不&#34;对于这两个。看起来Slim团队只是实现了一个天真的算法,并没有回头看。例如,this quote from the GitHub issue tracker

  

漂亮的渲染器在某些情况下效果不佳,因为Slim的重点在于性能。如果你有时间,请为寺庙项目https://github.com/judofyr/temple的漂亮渲染器提供补丁,并提供测试用例。