【问题标题】:Rails - close html tags when you enter html in a formRails - 在表单中输入 html 时关闭 html 标签
【发布时间】:2012-03-08 08:25:31
【问题描述】:

如果用户忘记关闭 html 标签,有什么方法可以关闭?例如。当用户输入是:

<b>small</b><i>test

Rails 有没有办法自动添加结束 &lt;/i&gt; 标记,这样下面的所有 html 都不会是斜体?

我使用.html_safe 将所有内容解释为html,但我也想终止&lt;i&gt;

【问题讨论】:

标签: html ruby-on-rails ruby


【解决方案1】:

Rails 没有任何内置功能来执行此操作,但是您有两种选择:

  1. Nokogiri - 几乎可以在所有平台上轻松安装 (gem install nokogiri)
  2. Tidy - 第二篇文章详细介绍了在 linux 和 windows 中使用它

使用 nokogori 你可以简单地做到:

html = "<b>small</b><i>test"
clean = Nokogiri::HTML::DocumentFragment.parse(html).to_html
# clean = "<b>small</b><i>test</i>"

【讨论】:

    【解决方案2】:

    Rails 不能对你这样做。

    您可以使用一些模板系统,例如 Haml 或 Slim,以免忘记这一点。

    您也可以通过自己的编辑器来完成。

    【讨论】:

      【解决方案3】:

      一个不错的方法是将输入提供给 dom 解析器,然后让该解析器输出正确的 HTML。

      请注意,这不是万无一失的,如果用户犯了太多错误,解析器将不知道该怎么做。

      我建议Nokogiri

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多