我正在使用 slim 模板和 ruby on rails(刚开始使用它们)。我面临的唯一问题是:呈现的 html 没有格式。即没有换行符,没有缩进。我可以理解,对于 slim 而言,本质上呈现格式可能有点棘手。
无论如何要呈现格式正确的html?
我正在使用 slim 模板和 ruby on rails(刚开始使用它们)。我面临的唯一问题是:呈现的 html 没有格式。即没有换行符,没有缩进。我可以理解,对于 slim 而言,本质上呈现格式可能有点棘手。
无论如何要呈现格式正确的html?
从文档:
Slim::Engine.set_default_options pretty: true
或直接
Slim::Engine.default_options[:pretty] = true
扩展一点,正如@rubiii 在评论中提到的,这是 Slim 的一个特性。出于同样的原因,在生产中缩小和压缩 Javascript 和 CSS 是一种很好的做法,Slim 从它生成的 HTML 中去除不必要的空白,而无需将此:pretty
选项设置为true
.
如果你有一些config/initializers/slim.rb
文件,你可以:pretty
通过检查环境来动态配置选项。
Slim::Engine.set_default_options pretty: Rails.env.development?
否则,您应该将此选项设置为true
only in config/environments/development.rb
,将其留false
在生产环境中。
只需将data-force-encoding="✓"
属性添加到body
标签。这将使 Rails 以引用的可打印形式发送电子邮件(诀窍实际上是使用 UTF8 字符)。见:https ://github.com/slim-template/slim/issues/123
无论如何要呈现格式正确的html?
从技术上讲,HTML 可以“正确格式化”,没有换行符。如果您好奇,请查看“HTML 验证”。
至于 Slim,换行符是您必须做一些额外工作的少数几点之一。在很多人使用 HTML<br>
标签的地方,我更喜欢使用$/
哪个是对应于本地行分隔符的 ruby 变量。我更喜欢这个,因为<br>
元素已经过时了,虽然 slim 不会产生任何渲染它的输出,但使用实际标签是不好的做法。行尾变量对我个人来说也更熟悉和可靠:)
实际上,另一个重要的使用理由$/
是它可以无缝地融入其他 ruby 编码模式,并且总体上更加不可知。以这个模板为例。