13

我正在使用 slim 模板和 ruby​​ on rails(刚开始使用它们)。我面临的唯一问题是:呈现的 html 没有格式。即没有换行符,没有缩进。我可以理解,对于 slim 而言,本质上呈现格式可能有点棘手。

无论如何要呈现格式正确的html?

4

3 回答 3

20

文档

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?

否则,您应该将此选项设置为trueonly in config/environments/development.rb,将其留false在生产环境中。

于 2013-02-24T13:08:07.927 回答
0

只需将data-force-encoding="✓"属性添加到body标签。这将使 Rails 以引用的可打印形式发送电子邮件(诀窍实际上是使用 UTF8 字符)。见:https ://github.com/slim-template/slim/issues/123

于 2013-07-26T01:02:22.600 回答
0

无论如何要呈现格式正确的html?

从技术上讲,HTML 可以“正确格式化”,没有换行符。如果您好奇,请查看“HTML 验证”。

至于 Slim,换行符是您必须做一些额外工作的少数几点之一。在很多人使用 HTML<br>标签的地方,我更喜欢使用$/哪个是对应于本地行分隔符的 ruby​​ 变量。我更喜欢这个,因为<br>元素已经过时了,虽然 slim 不会产生任何渲染它的输出,但使用实际标签是不好的做法。行尾变量对我个人来说也更熟悉和可靠:)

实际上,另一个重要的使用理由$/是它可以无缝地融入其他 ruby​​ 编码模式,并且总体上更加不可知。以这个模板为例。

于 2020-07-10T06:43:55.173 回答