URLのハイライトが仕様通りではありません

追伸:投稿しようとしたところ、「エラーが発生しました:申し訳ありませんが、新規ユーザーは投稿に2つのリンクしか含めることができません。」というポップアップが表示されました。どのようなスパムを防ぐためのものなのかは分かりませんが、リンクのほとんどはスパマーにとって十分なため、きれいにフォーマットされたMarkdownリンクをテキストベースの脚注に置き換える必要がありました。デフォルトのMarkdownエディタで脚注を追加するプロセス自体が、別のレポートに値するほど不安定でイライラするものです。


追伸の追伸:Markdownベースの参照もリンクとしてカウントされるようです。Unicodeの superscript digits に置き換えます。この投稿を作成するのに40分かかりました。


STD 66 / RFC 3986¹(人間が読みやすい抽出リスト²)によると、URLのフラグメントまたはキューには81文字までエスケープせずに含めることができます。Swiftプログラミング言語のフレームワーク「Foundation³」によってASCII順にソートされたリストはこちらです:!$&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~

以下は、これらの文字のうちいくつかを含むURLです:Example Domain'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~ ご覧のとおり、ハイライトは特定の時点でカットされています。

これらの81文字を使用してフラグメントにバイナリデータをエンコードするプロジェクト(base64方式ですが、よりコンパクト)に取り組んでいる際に、いくつかのウェブサイトで仕様に準拠したハイライトを確認しました。同様のバグが、他の場所(GitHubフォーラムで最後の文字が~の場合にハイライトできないなど)でも、一貫性なく発生していましたが、Discourseは壊れた記号の選択肢が最も広いです。一部の文字は、神秘的なコンテキストによってハイライトが壊れたり壊れなかったりするため、包括的なリストを作成することはできないと思います。

¹ Google rfc/rfc3986.txt
² Stack Overflow の回答 #26119120 を参照してください
³ Apple > Developer の documentation/foundation/nscharacterset/urlfragmentallowed を参照してください


追伸の追伸の追伸:一部の標準的なEメールアドレスもハイライトされていません。例として、https://e-mail.wtf へのリンクに2番目のリンクを使用します。

ハイライトされていませんが、ハイライトされるべきものです:

orgmail(to John Doe)@example.com
“:(){ :|:& };:”@example.com
magic@[::1]

「いいね!」 1

コミュニティへようこそ!

投稿ありがとうございます。これはバグというよりは機能に関するものだと考えられるため、Feature に移動しました。非常に技術的な内容なので、Dev に属する可能性もあります。

これは新規ユーザー向けの制限であり、スパマーが大量のリンクを投稿するのを防ぐためのものです。しばらくこちらで活動していれば、この制限は自動的に解除されます。ここでは、デフォルトのURL数2件から5件に引き上げました。これはかなり厳格だと感じられ、また、リンクの数に関係なくすべてのスパムを検出するAIスパム対策も導入しているためです。

これに関するさらなるフィードバックがあれば、Site feedback でトピックを開始してください。