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

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

说,

 ul.ampm li.am am li.pm pm 

生成

 
  • am
  • pm

 .ampm span.am am span.pm pm 

生成

 
ampm

通常这不是一个大问题,但我们使用响应式布局应用display: inline-block to li tags; 显然,它们之间有空格会破坏布局。

我知道

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

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

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

所以…

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

非常感激。

我通过在关键位置恢复内联HTML来解决这个问题。 对我来说,它是为options添加一组options

 select - my_collection.each do |item|  

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

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

对于这两个人,我会选择“不”。 看起来Slim团队只是实现了一个天真的算法,并没有回头看。 例如, 来自GitHub问题跟踪器的引用 :

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