【问题标题】:Can you get ERB to properly indent when rendered?你能让ERB在渲染时正确缩进吗?
【发布时间】:2011-04-17 05:17:30
【问题描述】:

我在 Rails application.html.erb file 中包含了几个部分,但生成的 HTML 不保留我的缩进(格式)。有人告诉我,第一行的缩进级别与对 _partial.html.erb 的调用相同,但部分中的所有后续行都左对齐。

这会产生如下代码(请参阅我的 cmets 进行定位):

<body>
    <div id="outer">

        <div class="contentwidth main">
            <div class="logo"> <<<<< Shouldn't be this far to the right
    <h1><a href="index.html">minimal.</a></h1>
</div><!-- end logo -->     <<<<<<< Shouldn't be way over to the left

有什么方法可以使用 ERB 更好地解决这个问题/格式化我包含的部分?还是我需要使用 HAML?

【问题讨论】:

  • 你为什么在乎? HTML 是供机器使用的,而不是供人使用的。
  • 这让我很困扰,从组织的角度来看,正确嵌套的标签看起来要好得多(更容易看到内容的开始和结束位置)。
  • 人类在调试时必须消耗机器的东西。
  • 如有必要,您可以“查看源代码”来查看 HTML,但如果有一个像样的 DOM 检查器(例如 Firebug 或 WebKit 的“检查元素”),您会获得更好的运气。
  • 我知道我可以使用其他工具来收拾残局。我只是想知道是否有一些我不知道的 Rails 秘密 来避免一开始的麻烦。我见过其他带有正确嵌套标签的 Rails 网站,这些标签在视图中使用了部分。

标签: html ruby-on-rails erb indentation


【解决方案1】:

不是您想要的答案 - 但是 - 不,Rails 没有内置任何东西来自动缩进 ERB。

【讨论】:

  • 可悲的是,情况似乎如此。我已经改用 HAML 并且喜欢它的每一点。
  • 是的,haml 绝对值得切换。
【解决方案2】:

doc on filters 包含一个使用后过滤器在将 html 发送到浏览器之前对其进行压缩的示例。

做类似的事情,但使用类似 Tidy 的东西来重新格式化和替换这个例子压缩的 html 可能会奏效。

【讨论】:

  • 酷,我去看看。谢谢。
猜你喜欢
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多