HTML-порядок / очистка в Ruby 1.9

В настоящее время я использую привязки RubyTidy Ruby для HTML, чтобы убедиться, что HTML, который я получаю, хорошо сформирован. В настоящее время эта библиотека – единственное, что удерживает меня от получения приложения Rails на Ruby 1.9. Есть ли альтернативные библиотеки, которые будут убирать куски HTML на Ruby 1.9?

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, что и аккуратно). Вышеупомянутые ссылки дают вам больше примеров использования.

Я использую Nokogiri для исправления неверного html:

   Nokogiri :: HTML :: DocumentFragment.parse (HTML) .to_html

Вот хороший пример того, как сделать ваш 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 

Для получения более опрятных опций проверьте справочную страницу .

В настоящее время эта библиотека – единственное, что удерживает меня от получения приложения Rails на Ruby 1.9.

Остерегайтесь, привязки Ruby Tidy имеют некоторые неприятные утечки памяти. В настоящее время он непригоден для длительных процессов. (для записи я использую http://github.com/ak47/tidy )

Мне просто пришлось удалить его из приложения Rails 2.3 производства, поскольку он протекал около 1 Мбайт / мин.