@ars42525 なかったかな。ハングルはあったけど。
@noellabo 一回やりかけた気はするんだけどリンクがどうこうみたいな問題が発覚した気がするんだよね
@ars42525 こんな感じで、タグとテキストをばらして個別処理。アンカーの中を変換しないようにしたり、ショートコードを変換しないように回避したりしてる。
https://github.com/fedibird/mastodon/blob/cfc7143b32bc01ac6ef15045dc16438ef749aaec/app/lib/formatter.rb#L215-L251
@ars42525 そうね……サニタイズとはまた違うが……まぁ、投げてみればわかるかなw
@noellabo 任意のコンテンツを送信するActivityPub実装が欲しくなってくるやつじゃん
@ars42525 Formatter.instance.reformatで
sanitize(html, Sanitize::Config::MASTODON_STRICT)
っての呼んでて、ここでbrokenなhtmlを投げても綺麗に成形してくれるね。なかなか強い。
Formatter.instance.reformat('<p>abc')
=> "<p>abc</p>"
Formatter.instance.reformat('<p>a<a href="https://fedibird.com">bc</p>')
=> "<p>a<a href=\"https://fedibird.com\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">bc</a></p>"
@noellabo 勝手に直しちゃうのすごい
そういえばブラウザのHTMLパーサーもそんな処理してたわね
@noellabo そもそも壊れたHTML投げたらMastodonってどうなるのかしら…