2009-08-20 21 views
8

मैं वर्तमान में सुनिश्चित करें कि HTML मैं प्राप्त करने के लिए HTML के लिए RubyTidy रूबी बाइंडिंग साफ उपयोग कर रहा हूँ सफाई अच्छी तरह से गठित है। वर्तमान में यह लाइब्रेरी एकमात्र चीज है जो मुझे रूबी 1.9 पर रेल एप्लिकेशन प्राप्त करने से रोकती है। क्या वहाँ कोई वैकल्पिक पुस्तकालय है जो रूबी 1.9 पर एचटीएमएल के हिस्सों को साफ करेगा?एचटीएमएल साफ/रूबी 1.9 में

उत्तर

1

वर्तमान में इस पुस्तकालय केवल मुझे रूबी 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 

अधिक सुव्यवस्थित विकल्पों के लिए,:

3

यहाँ कैसे अपने html सुथरा का उपयोग कर बेहतर बनाने के लिए का एक अच्छा उदाहरण है।

माणिक 1.9 (नवीनतम संस्करण)

साथ

+0

के रूप में अब यह प्रतीत होता है साफ मणि रूबी 1.9 के साथ असंगत है। वहाँ https://github.com/ShogunPanda/tidy में एक कांटा हो गया लगता है लेकिन मैं यह जांच नहीं की। – aceofspades

7

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 के रूप में साफ का उपयोग करता है) ऊपर दिए गए लिंक स्थापित करने की आवश्यकता आपको उपयोग का अधिक उदाहरण देता है।

7

मैं Nokogiri उपयोग कर रहा हूँ अमान्य HTML ठीक करने के लिए:

 
    Nokogiri::HTML::DocumentFragment.parse(html).to_html 
+1

मुझे नहीं लगता कि यह HTML HTML है। – aceofspades

+0

क्या यह विश्वसनीय है? मेरा मतलब है, ऐसा लगता है कि, उदाहरण के लिए, पैराग्राफ में नेस्ट सूचियों वाक्यविन्यास त्रुटियों को ठीक करता है? –

+0

Nokogiri केवल सुनिश्चित करता है एचटीएमएल अच्छी तरह से गठित है, लेकिन यह वाक्य रचना त्रुटियाँ ठीक नहीं होगा। उदाहरण के लिए, '

एक्स
y'" निर्धारित "है'
एक्स
y
'में – Daniel

संबंधित मुद्दे