Ruby 1.9中的HTML整理/清理

时间:2009-08-20 20:46:01

标签: html ruby-1.9 tidy

我目前正在使用RubyTidy Ruby绑定来实现HTML整洁,以确保我收到的HTML格式正确。目前这个库是阻止我在Ruby 1.9上获得Rails应用程序的唯一因素。是否有任何替代库可以在Ruby 1.9上整理大量的HTML?

4 个答案:

答案 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 /分钟。