うちローマ字変換入れてなかったっけ

@ars42525 なかったかな。ハングルはあったけど。

一回やりかけた気はするんだけどリンクがどうこうみたいな問題が発覚した気がするんだよね

@ars42525 こんな感じで、タグとテキストをばらして個別処理。アンカーの中を変換しないようにしたり、ショートコードを変換しないように回避したりしてる。
github.com/fedibird/mastodon/b

これは大変だぁ…
HTMLでやり取りしたり保管したりするの、こういう処理しようとすると露骨に弊害が…

@ars42525 まぁ構文エラーがないという前提ならこのぐらいのコードでいいだろって感じだけど、何が来るかわからない想定だともう少し真面目にかかないと……w

そもそも壊れたHTML投げたらMastodonってどうなるのかしら…

@ars42525 そうね……サニタイズとはまた違うが……まぁ、投げてみればわかるかなw

任意のコンテンツを送信する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="fedibird.com">bc</p>')
=> "<p>a<a href=\"fedibird.com\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">bc</a></p>"

勝手に直しちゃうのすごい
そういえばブラウザのHTMLパーサーもそんな処理してたわね

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。