8

私は現在、HTMLtidy用のRubyTidyRubyバインディングを使用して、受け取ったHTMLが整形式であることを確認しています。現在、このライブラリは、Ruby1.9でRailsアプリケーションを入手することを妨げている唯一のものです。Ruby 1.9でHTMLのチャンクを整理する代替ライブラリはありますか?

4

4 に答える 4

7

Nokogiriを使用して無効な html を修正しています。

  Nokogiri::HTML::DocumentFragment.parse(html).to_html
于 2010-11-29T08:42:30.410 に答える
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

(tidy と同じ dll を使用します) 上記のリンクは、使用例をさらに示しています。

于 2010-04-21T18:36:03.320 に答える
3

これは、tidy を使用して 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 ページを確認してください。

于 2010-04-16T08:08:25.703 に答える
1

現在、このライブラリは、Ruby 1.9 で Rails アプリケーションを取得することを妨げている唯一のものです。

注意してください、Ruby Tidy バインディングには厄介なメモリ リークがあります。現在、実行時間の長いプロセスでは使用できません。(記録のために、私はhttp://github.com/ak47/tidyを使用しています)

毎分約1MBのリークがあったため、本番Rails 2.3アプリケーションから削除する必要がありました。

于 2010-03-11T09:49:46.777 に答える