在 Rails 中显示数据时将链接转换为锚点

发布于 2024-10-03 16:42:31 字数 135 浏览 2 评论 0原文

所以我有一些包含链接的文本数据,现在当显示该数据时将它们转换为锚点的正确方法是什么。

我看到的一种方法是像这样 raw(urlize(h(data)))... 也许有更好的方法?

PS我不想用红布

So I have some textual data which contains links, now what is the proper way to convert them into anchors when that data is being displayed.

The one way that I see is to do smth like this raw(urlize(h(data)))...
Maybe there is better way?

P.S. I don't want to use redcloth

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦里人 2024-10-10 16:42:31

您可以编写一个方法来实现 Daring Fireball 启发的链接匹配器:

class String
  def urlify
    gsub(%r{\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))}u) do |s|
      %Q{<a href="#{s}">#{s}</a>}
    end.html_safe
  end
end

这将链接任何前缀为正确的协议,例如 http://mailto:,但应注意跳过或删除 javascript: 链接。

You can write a method that implements the Daring Fireball inspired link matcher:

class String
  def urlify
    gsub(%r{\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))}u) do |s|
      %Q{<a href="#{s}">#{s}</a>}
    end.html_safe
  end
end

This will link anything prefixed with the proper protocol like http:// or mailto: though care should be taken to skip or strip javascript: links.

淡忘如思 2024-10-10 16:42:31

We can use the auto_link gem here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文