细长的换行符和格式

时间:2013-02-24 12:49:07

标签: ruby-on-rails slim-lang

我在铁轨上使用纤薄的模板和红宝石(刚开始使用它们)。我面临的唯一问题是:渲染的html没有格式化。即没有换行,没有缩进。 我可以理解,对于苗条来说,本质上渲染格式可能有点棘手。

无论如何都要渲染格式正确的html?

3 个答案:

答案 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为例。