Web アプリで送信された html をクリーンアップして、スタイルや閉じられていないタグがアプリのレイアウトを破壊することなく、将来再表示できるようにする方法についてのアドバイスを探しています。
私のアプリでは、リッチ HTML が YUI リッチ テキスト エディターを使用してユーザーによって送信されます。これは、デフォルトでいくつかの正規表現を実行して入力をクリーンアップします。[ を呼び出してfilter_MSWord][1]
、オフィスから送信されたがらくたをキャッチすることもできます。
バックエンドでは、ruby-tidy
コメントとして表示される前に HTML をサニタイズするために実行していますが、不適切に貼り付けられた HTML が、使用しているアプリのレイアウトに影響を与えることがあります。これを防ぐにはどうすればよいですか?
FWIWここに私が使用している消毒剤の設定があります-
module HTMLSanitizer
def tidy_html(input)
cleaned_html = Tidy.open(:show_warnings=>false) do |tidy|
# don’t output body and html tags
tidy.options.show_body_only = true
# output xhtml
tidy.options.output_html = true
# don’t write newlines all over the place
tidy.options.wrap = 0
# use utf8 to play nice with rails
tidy.options.char_encoding = 'utf8'
xml = tidy.clean(input)
xml
end
end
end
他にどのようなオプションがありますか?