【问题标题】:Slim templates - removing whitespaces around the block tagSlim 模板 - 删除块标签周围的空格
【发布时间】:2015-01-02 05:32:22
【问题描述】:

我正在一个新项目中尝试 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

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

&lt;&gt; 在 Slim 中似乎与我需要的相反 - 它们旨在用于在内联标签周围添加空格。

所以...

  • 是否可以在 Slim 中删除单个块标记周围的空格,类似于 HAML 空格食者? (没有关闭漂亮选项的影响,即)
  • 如果不是,它是基本的 Slim 限制(“设计”)还是路线图上的某些东西,将来可能会实施?

非常感谢。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    这是一个基本的 Slim 限制(“设计”)还是路线图上的某些东西,将来可能会实施?

    对于这两种情况,我都会选择“不”。看起来 Slim 团队只是实现了一个幼稚的算法,并没有回头。举个例子,this quote from the GitHub issue tracker

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-28
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多