我在铁轨上使用纤薄的模板和红宝石(刚开始使用它们)。我面临的唯一问题是:渲染的html没有格式化。即没有换行,没有缩进。 我可以理解,对于苗条来说,本质上渲染格式可能有点棘手。
无论如何都要渲染格式正确的html?
答案 0 :(得分:19)
来自the docs:
Slim::Engine.set_default_options pretty: true
或直接
Slim::Engine.default_options[:pretty] = true
要扩展一下,正如评论中提到的@rubiii这是Slim的一个特性。出于同样的原因,最好在生产中缩小和压缩Javascript和CSS。在没有将:pretty
选项设置为true
的情况下,从它生成的HTML中删除不必要的空格。
如果您有一些config/initializers/slim.rb
文件,则可以通过检查环境动态配置:pretty
选项。
Slim::Engine.set_default_options pretty: Rails.env.development?
否则,您应该仅在true
中将此选项设置为config/environments/development.rb
,并将false
保留在生产中。
答案 1 :(得分:0)
只需将data-force-encoding="✓"
属性添加到body
标记即可。这将使Rails以引用的可打印方式发送电子邮件(技巧实际上是使用UTF8 char)。请参阅:https://github.com/slim-template/slim/issues/123
答案 2 :(得分:0)
总有没有呈现格式正确的html?
从技术上讲,可以对HTML进行“正确格式化”,而无需换行。如果您感到好奇,请查看“ HTML验证”。
对于Slim,换行符是您需要做一些额外工作的几个要点之一。在许多人使用HTML <br>
标记的地方,我更喜欢使用$/
,它是与本地行分隔符相对应的ruby变量。我更喜欢这样做,因为<br>
元素已过时,尽管slim不会产生任何输出来呈现它,但是使用实际标记是一种不好的做法。行结束变量对我个人来说也更熟悉和可靠:)
实际上,使用$/
的另一个重要原因是,它无缝地适用于其他红宝石编码模式,并且总体上不可知。以this template为例。