Ruby HTML美化器,将输入标记放在单独的行上

Ruby HTML美化器,将输入标记放在单独的行上,ruby,htmltidy,Ruby,Htmltidy,我必须处理一些非常难看的标记,我正在ruby上运行Tidy。在大多数情况下,它工作得很好,除了将标记中的大量隐藏输入集中到一行之外。我知道有一个列换行设置,但如果它只是将兄弟输入放在单独的行上,那就更好了。这一点很重要,因为当查看标记并快速查看隐藏输入中的信息时,它将简化调试 我还没有找到这样的工具。那么外面有什么事吗?还是我太傻了 我还应该补充一点,很多问题都源于我最初得到的糟糕的标记,在它到达我面前,我无法做任何事情来清理它。我尝试了Nokogiri pretty来清理它,它非常接近完美,但

我必须处理一些非常难看的标记,我正在ruby上运行Tidy。在大多数情况下,它工作得很好,除了将标记中的大量隐藏输入集中到一行之外。我知道有一个列换行设置,但如果它只是将兄弟输入放在单独的行上,那就更好了。这一点很重要,因为当查看标记并快速查看隐藏输入中的信息时,它将简化调试

我还没有找到这样的工具。那么外面有什么事吗?还是我太傻了

我还应该补充一点,很多问题都源于我最初得到的糟糕的标记,在它到达我面前,我无法做任何事情来清理它。我尝试了Nokogiri pretty来清理它,它非常接近完美,但它将脚本标记变成了自动关闭标记,这是不好的


现在我正在整理源代码,然后(我知道这很糟糕)
gsub(/]*>/,“\0”+“\n”)
。我喜欢这样一个事实,那就是我必须用这条新线来完成拍摄。

Nokogiri可以很容易地做到这一点:

doc.css('input').each{|input| input.before "\n"}

Tidy在Ruby中往往有问题。它一直在泄漏内存,它与1.9不兼容,等等。但是,通过使用Nokogiri和
Nokogiri pretty
gem,您可以完全跳过Tidy

假设您有Nokogiri文件:

require 'nokogiri-pretty'
puts doc.human

除其他整理外,所有的
标记都将在自己的行上,并正确缩进。

非常接近。Nokogiri Pretty使空脚本标记自动关闭,这破坏了很多东西。为什么有空脚本标记?