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

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

投稿ありがとうございます。報告されている件は#contribute:bugというよりは、#contribute:featureに該当するように思えたので、そちらに移動しました。非常に技術的な内容なので、実際には#devのようなカテゴリに属する可能性があります。

これは、新規ユーザーに対してスパム行為を防ぐためのリンク数の制限です。ある程度コミュニティに滞在していただければ、この制限は自動的に解除されます。当メタフォーラムでは、デフォルトの2 URLから5 URLへ制限を緩和しました。厳しすぎるように思えたためです。また、AIによるスパム対策を導入しており、リンク数に関係なくすべてのスパムを検出しています。

この件についてさらにフィードバックがある場合は、#contribute:site-feedbackにトピックを立ててお気軽にご連絡ください。