मैं वर्तमान में सुनिश्चित करें कि HTML मैं प्राप्त करने के लिए HTML के लिए RubyTidy रूबी बाइंडिंग साफ उपयोग कर रहा हूँ सफाई अच्छी तरह से गठित है। वर्तमान में यह लाइब्रेरी एकमात्र चीज है जो मुझे रूबी 1.9 पर रेल एप्लिकेशन प्राप्त करने से रोकती है। क्या वहाँ कोई वैकल्पिक पुस्तकालय है जो रूबी 1.9 पर एचटीएमएल के हिस्सों को साफ करेगा?एचटीएमएल साफ/रूबी 1.9 में
उत्तर
वर्तमान में इस पुस्तकालय केवल मुझे रूबी 1.9 पर एक रेल आवेदन प्राप्त करने से रोके हुए बात है।
देखें, रुबी टिडी बाइंडिंग में कुछ गड़बड़ मेमोरी लीक हैं। यह वर्तमान में लंबी चल रही प्रक्रियाओं में अनुपयोगी है। (रिकॉर्ड के लिए, मैं http://github.com/ak47/tidy का उपयोग कर रहा हूं)
मुझे इसे केवल रेल 2.3 आवेदन के उत्पादन से हटा देना पड़ा क्योंकि यह लगभग 1 एमबी/मिनट लीक था। man page की जाँच
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
अधिक सुव्यवस्थित विकल्पों के लिए,:
यहाँ कैसे अपने html सुथरा का उपयोग कर बेहतर बनाने के लिए का एक अच्छा उदाहरण है।
माणिक 1.9 (नवीनतम संस्करण)साथ
http://github.com/libc/tidy_ffi/blob/master/README.rdoc काम करता है आप विंडोज पर काम कर रहे हैं, तो आप 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 HTML है। – aceofspades
क्या यह विश्वसनीय है? मेरा मतलब है, ऐसा लगता है कि, उदाहरण के लिए, पैराग्राफ में नेस्ट सूचियों वाक्यविन्यास त्रुटियों को ठीक करता है? –
Nokogiri केवल सुनिश्चित करता है एचटीएमएल अच्छी तरह से गठित है, लेकिन यह वाक्य रचना त्रुटियाँ ठीक नहीं होगा। उदाहरण के लिए, '
के रूप में अब यह प्रतीत होता है साफ मणि रूबी 1.9 के साथ असंगत है। वहाँ https://github.com/ShogunPanda/tidy में एक कांटा हो गया लगता है लेकिन मैं यह जांच नहीं की। – aceofspades