我目前正在使用RubyTidy Ruby绑定来实现HTML整洁,以确保我收到的HTML格式正确。目前这个库是阻止我在Ruby 1.9上获得Rails应用程序的唯一因素。是否有任何替代库可以在Ruby 1.9上整理大量的HTML?
答案 0 :(得分:7)
http://github.com/libc/tidy_ffi/blob/master/README.rdoc适用于ruby 1.9(最新版本)
如果您正在使用Windows,则需要设置library_path,例如
require 'tidy_ffi'
TidyFFI.library_path = 'lib\\tidy\\bin\\tidy.dll'
tidy = TidyFFI::Tidy.new('test')
puts tidy.clean
(它使用与整洁相同的dll)以上链接为您提供了更多使用示例。
答案 1 :(得分:7)
我正在使用Nokogiri修复无效的html:
Nokogiri::HTML::DocumentFragment.parse(html).to_html
答案 2 :(得分:3)
这是一个很好的例子,说明如何使用整洁来改善你的html:
require 'tidy'
Tidy.path = '/opt/local/lib/libtidy.dylib' # or where ever your tidylib resides
nice_html = ""
Tidy.open(:show_warnings=>true) do |tidy|
tidy.options.output_xhtml = true
tidy.options.wrap = 0
tidy.options.indent = 'auto'
tidy.options.indent_attributes = false
tidy.options.indent_spaces = 4
tidy.options.vertical_space = false
tidy.options.char_encoding = 'utf8'
nice_html = tidy.clean(my_nasty_html_string)
end
# remove excess newlines
nice_html = nice_html.strip.gsub(/\n+/, "\n")
puts nice_html
有关更整洁的选项,请查看man page。
答案 3 :(得分:1)
目前这个图书馆是唯一的 让我回来的事情 Ruby 1.9上的Rails应用程序。
注意,Ruby Tidy绑定有一些令人讨厌的内存泄漏。它目前在长时间运行的过程中无法使用。 (为了记录,我正在使用http://github.com/ak47/tidy)
我只需将它从生产Rails 2.3应用程序中删除,因为它泄漏大约1MB /分钟。