我必须使用一些看起来非常丑陋的标记,然后我在ruby上通过Tidy运行它。在大多数情况下,它工作得很好,除了它将标记中的大量隐藏输入集中在一行上。我知道有一个列换行设置,但如果它只是将兄弟输入放在不同的行上会更好。这很重要,因为它可以在查看标记时简化调试,并在这些隐藏的输入中快速查看信息。
我还没有找到一个能够做到这一点的工具。那么有什么东西或者我是愚蠢的吗?
我还应该补充一点,很多问题源于我最初得到的糟糕标记,在我找到它之前我无法做任何事情来清理它。我尝试了Nokogiri-pretty来清理它并且它非常接近完美但它将脚本标签转换为自动关闭标签,这是不好的。
现在我正在解决来源,然后(我知道这很可怕)gsub(/<input[^>]*>/, '\0'+"\n")
。我喜欢这样一个事实,即我必须用新线连接捕获。
答案 0 :(得分:2)
Tidy在Ruby中往往存在问题。它已经reported泄漏内存,它不兼容1.9等等。但是,你可以通过使用Nokogiri和nokogiri-pretty
gem来完全跳过Tidy。
假设你有一个Nokogiri医生:
require 'nokogiri-pretty'
puts doc.human
除了其他整理之外,所有<input>
标记都将在各自的行中并正确缩进。
答案 1 :(得分:0)
Nokogiri可以轻松做到这一点:
doc.css('input').each{|input| input.before "\n"}