The kramdown converter for markdown uses inline styles for table column alignment which gets lost when we strip the styles so add bootstrap classes to replace it.
28 lines
866 B
Ruby
28 lines
866 B
Ruby
Sanitize::Config::OSM = Sanitize::Config.merge(
|
|
Sanitize::Config::RELAXED,
|
|
:elements => Sanitize::Config::RELAXED[:elements] - %w[div style],
|
|
:remove_contents => %w[script style],
|
|
:transformers => lambda do |env|
|
|
style = env[:node]["style"] || ""
|
|
|
|
env[:node].remove_class
|
|
env[:node].remove_attribute("style")
|
|
|
|
env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
|
|
|
|
case style
|
|
when /\btext-align:\s+left\b/
|
|
env[:node].add_class("text-start")
|
|
when /\btext-align:\s+center\b/
|
|
env[:node].add_class("text-center")
|
|
when /\btext-align:\s+right\b/
|
|
env[:node].add_class("text-end")
|
|
end
|
|
|
|
if env[:node_name] == "a"
|
|
rel = env[:node]["rel"] || ""
|
|
|
|
env[:node]["rel"] = rel.split.select { |r| r == "me" }.append("nofollow", "noopener", "noreferrer").sort.join(" ")
|
|
end
|
|
end
|
|
)
|