11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/rich/i18n/actionpack/action_view/sanitizor.rb', line 11
def sanitize_html(html)
return html unless (html || "").include?("<i18n ")
doc = Hpricot html
(doc/"head i18n").each do |i18n|
i18n.swap i18n.inner_html
end
(doc/"i18n").each do |i18n|
elem = Hpricot::Elem.new "span", i18n.raw_attributes.merge({:class => "i18n"})
elem.inner_html = i18n.inner_html
i18n.swap elem.to_html
end
(doc/"input").each do |input|
sanitize_input(input)
end
(doc/"textarea").each do |input|
sanitize_input(input)
end
doc.to_html
rescue
html.gsub(/(\<i18n[^\>]+\>)|(\<\/i18n\>)/, "")
end
|