我正在尝试新项目中的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中的 <
和>
似乎与我需要的相反 - 它们旨在用于在内联标记周围添加空格。
因此...
非常感谢。
答案 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的漂亮渲染器提供补丁,并提供测试用例。