【发布时间】:2018-12-07 18:07:52
【问题描述】:
Rails 的内置 HTML 清理程序(使用 gem Loofah)在 <ul> 和 <li> 标记之间添加换行符。我想用white-space: pre-wrap; 显示经过清理的内容,因为它来自所见即所得的编辑器,但是额外的换行符会使输出看起来错误。期望在顶部,实际在底部,背景颜色添加到 ul 以强调:
当我通过 rails 控制台中的 sanitize 运行一些代码时,会发生以下情况:
2.2.2 :033 > input = "<ul><li>a</li><li>b</li></ul>"
=> "<ul><li>a</li><li>b</li></ul>"
2.2.2 :034 > WhiteListSanitizer.new.sanitize(input)
=> "<ul>\n<li>a</li>\n<li>b</li>\n</ul>"
如果我创建一个丝瓜络对象并将其转换为 html 而不进行擦除,它仍然会添加换行符。
2.2.2 :035 > Loofah.fragment(input).to_html
=> "<ul>\n<li>a</li>\n<li>b</li>\n</ul>"
如何让它不留空白?
如果绝对必要,我可以使用正则表达式去除换行符,但似乎很奇怪,没有选项可以禁用此行为。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 sanitization sanitize