使用しているbb-ruby
の宝石は、bbcode_to_html
メソッドにパラメータとして渡されたカスタムBBCode変換を使用できます。しかし、のリンクにrel="nofollow"
が含まれていることを本当に欲しいのであれば、あなたの最善の策は、それらが宝石そのものにパッチを当てることです。 BBRuby sourceに基づいて、あなたはこれをしたい:いつものnofollow属性を含めるように
module BBRuby
@@tags = @@tags.merge({
'Link' => [
/\[url=(.*?)\](.*?)\[\/url\]/mi,
'<a href="\1" rel="nofollow">\2</a>',
'Hyperlink to somewhere else',
'Maybe try looking on [url=http://google.com]Google[/url]?',
:link],
'Link (Implied)' => [
/\[url\](.*?)\[\/url\]/mi,
'<a href="\1" rel="nofollow">\1</a>',
'Hyperlink (implied)',
"Maybe try looking on [url]http://google.com[/url]",
:link],
'Link (Automatic)' => [
/(\A|\s)((https?:\/\/|www\.)[^\s<]+)/,
' <a href="\2" rel="nofollow">\2</a>',
'Hyperlink (automatic)',
'Maybe try looking on http://www.google.com',
:link]
})
end
これはBBRubyトランスレータを書き換えます。私はこれをconfig/initializers
に入れます。具体的なファイル名はbbruby_nofollow_monkeypatch.rb
です。
html_safe
については、そのまま残しておきます。私はそれを理解するのが好ましい方法であり、私の意見ではあなたの意図を明確にしています。上記のサルのパッチは、あなたのビューの行をより読みやすくします:
<%= @post.content.bbcode_to_html.html_safe %>
それは、ありがとう!私がまだRailsにはまだ新しいので、宝石の猿のパッチングがどのように可能であるか見るのは面白いです。 –
問題はありませんが、手動で奨励金を授与しなければならないことを知っているだけです。http://stackoverflow.com/faq#bounty –