-Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup
-
-Sanitize::Config::OSM[:elements] -= %w[div style]
-Sanitize::Config::OSM[:add_attributes] = { "a" => { "rel" => "nofollow noopener noreferrer" } }
-Sanitize::Config::OSM[:remove_contents] = %w[script style]
-Sanitize::Config::OSM[:transformers] = lambda do |env|
- env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
-end
+Sanitize::Config::OSM = Sanitize::Config.merge(
+ Sanitize::Config::RELAXED,
+ :elements => Sanitize::Config::RELAXED[:elements] - %w[div style],
+ :add_attributes => { "a" => { "rel" => "nofollow noopener noreferrer" } },
+ :remove_contents => %w[script style],
+ :transformers => lambda do |env|
+ env[:node].remove_class
+ env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
+ end
+)
assert_select "style", false
assert_select "p", /^foo *baz$/
end
+
+ r = RichText.new("html", "<table><tr><td>column</td></tr></table>")
+ assert_html r do
+ assert_select "table[class='table table-sm w-auto']"
+ end
+
+ r = RichText.new("html", "<p class='btn btn-warning'>Click Me</p>")
+ assert_html r do
+ assert_select "p[class='btn btn-warning']", false
+ assert_select "p", /^Click Me$/
+ end
end
def test_html_to_text
assert_html r do
assert_select "pre", /^\s*foo bar baz\s*$/
end
+
+ r = RichText.new("markdown", "|column|column")
+ assert_html r do
+ assert_select "table[class='table table-sm w-auto']"
+ end
+
+ r = RichText.new("markdown", "Click Me\n{:.btn.btn-warning}")
+ # raise r.to_html
+ assert_html r do
+ assert_select "p[class='btn btn-warning']", false
+ assert_select "p", /^Click Me$/
+ end
end
def test_markdown_to_text