Actualmente estoy usando los enlaces RubyTidy Ruby para HTML tidy para asegurarme de que el HTML que recibo está bien formado. Actualmente, esta biblioteca es lo único que me impide obtener una aplicación de Rails en Ruby 1.9. ¿Hay alguna biblioteca alternativa que pueda ordenar fragmentos de HTML en Ruby 1.9?HTML tidy/cleaning en Ruby 1.9
Respuesta
Actualmente esta biblioteca es la única cosa que me sostiene detrás de conseguir una aplicación rieles en Ruby 1.9.
Cuidado, las fijaciones Tidy Rubí tienen algunas pérdidas de memoria desagradables. Actualmente no se puede usar en procesos de larga ejecución. (para el registro, estoy usando http://github.com/ak47/tidy)
Solo tuve que eliminarlo de una aplicación Rails 2.3 de producción porque tenía una fuga de 1MB/min.
Aquí es un buen ejemplo de cómo hacer que su html se ven mejor usando ordenada:
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
Para opciones más ordenado, visita nuestra man page.
http://github.com/libc/tidy_ffi/blob/master/README.rdoc obras con Ruby 1.9 (última versión)
Si está trabajando en las ventanas, lo que necesita para establecer el library_path por ejemplo
require 'tidy_ffi'
TidyFFI.library_path = 'lib\\tidy\\bin\\tidy.dll'
tidy = TidyFFI::Tidy.new('test')
puts tidy.clean
(Se utiliza el mismo archivo DLL como ordenada) Los enlaces de arriba le da más ejemplos del uso.
estoy usando Nokogiri para fijar HTML no válido:
Nokogiri::HTML::DocumentFragment.parse(html).to_html
No creo que esto arregle el HTML. – aceofspades
¿Es confiable? Es decir, ¿soluciona errores de sintaxis como, por ejemplo, listas anidadas en párrafos? –
Nokogiri solo garantiza que el html está bien formado, pero no solucionará los errores de sintaxis. Por ejemplo, '
A partir de ahora parece que la joya ordenada es incompatible con Ruby 1.9. Parece haber un tenedor en https://github.com/ShogunPanda/tidy pero no lo he investigado. – aceofspades