Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“是否有JavaScript或Ruby版本?”;HTML整洁;?_Javascript_Jquery_Ruby On Rails_Ruby_Tidy - Fatal编程技术网

“是否有JavaScript或Ruby版本?”;HTML整洁;?

“是否有JavaScript或Ruby版本?”;HTML整洁;?,javascript,jquery,ruby-on-rails,ruby,tidy,Javascript,Jquery,Ruby On Rails,Ruby,Tidy,是否存在类似于HTML的库(http://tidy.sourceforge.net/)这不是特定于操作系统的(需要在每个主机上编译)。基本上,我只想验证/清除用户发送给我的HTML <p>hello</p></p><br> 你好 应该成为 <p>hello</p> <br/> 你好 javascript或ruby中的一些东西适合我。 谢谢 有一个java端口,但据我所知没有其他端口,可能有一种方法可以从

是否存在类似于HTML的库(http://tidy.sourceforge.net/)这不是特定于操作系统的(需要在每个主机上编译)。基本上,我只想验证/清除用户发送给我的HTML

<p>hello</p></p><br>
你好


应该成为

<p>hello</p>
<br/>
你好


javascript或ruby中的一些东西适合我。 谢谢

有一个java端口,但据我所知没有其他端口,可能有一种方法可以从Ruby调用HTML tidy,这种方法对您有效,prahaps可以从Ruby webapp在命令行上调用HTML tidy应用程序。

这种方法对您有效吗


或者您想用什么方法修复错误?

您以前检查过这个吗

在Ruby中,您可以在Nokogiri中解析HTML,这将允许您检查错误,然后让它输出HTML,这将清除丢失的结束标记等。请注意,在下面的HTML中,title和p标记没有正确关闭,但是Nokogiri添加了结束标记

require 'nokogiri'

html = '<html><head><title>the title</head><body><p>a paragraph</body></html>'
doc = Nokogiri::HTML(html)
puts "Errors found" if (doc.errors.any?)
puts doc.to_html
# >> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
# >> <html>
# >> <head>
# >> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
# >> <title>the title</title>
# >> </head>
# >> <body><p>a paragraph</p></body>
# >> </html>

如果你只是想要一个美丽的使用相当不同


html tidy已编译为javascript(使用emscripten)

请参阅并下载


如果您足够勇敢,您可以使用所需的选项将其编译为javascript。看

是的,我知道!我只是提到它是我所知道的唯一端口。不幸的是,我无法在我的主机上安装java(或其他可以工作的),但谢谢,问题在于:Tidy.path='/usr/lib/tidylib.so'需要为主机编译的是另一个构建在Nokogiri上的gem,它进行消毒。sanitize gem()使用Nokogiri并工作(谢谢!)。有人知道可以在客户端为他们提供即时反馈的东西吗?当你说“即时反馈”时,你在想什么?他们浏览器中的即时更新?这将是一个AJAX调用,用于更新
块的内容。true,但这将包括将输入保存回服务器,然后再次呈现它(例如,不可能对每个按键进行更新)。如果真的没有javascript清理器,我将在AJAX中实现一些东西。谢谢你找到了什么!
require 'open3'

html = '<html><head><title>the title</head><body><p>a paragraph</body></html>'

stdin, stdout, stderr = Open3.popen3('/usr/bin/tidy -qi')
stdin.puts html
stdin.close
puts stdout.read
# >> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
# >> 
# >> <html>
# >> <head>
# >>   <meta name="generator" content=
# >>   "HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 15.3.6), see www.w3.org">
# >> 
# >>   <title>the title</title>
# >> </head>
# >> 
# >> <body>
# >>   <p>a paragraph</p>
# >> </body>
# >> </html>