再現手順
投稿を編集し、リンクツールを使用します。相対 URL を貼り付けます。たとえば、 /g/moderators は、あらゆる Discourse インストールで正当なものになります。
リンクツールはリンクの Markdown を生成しますが、相対 URL を展開して先頭に「https://」を追加します。
公開すると、表示される最終的な生成リンクが実際にはクリック可能なリンクではないことがわかります。
ここにあるリンクのように、壊れています。
*悲しいトロンボーン*
待て、何だって? scheme:///path?
私の BNR は錆びていますが、RFC 1808 は、スキーム、権限なし、パスありは正当であると述べていると信じています。つまり、https:///g/moderators は完全に正当です。私が試したいくつかのオンライン URL パーサーも同意しています。したがって、(そのような、確かに奇妙に見える URL) は、A タグの HREF 属性値として問題ないはずです。
したがって、エディタのリンクツールは技術的には URL を壊していません。エラーは、調理/レンダリング/その他フェーズにあります。
回避策は当然ながら非常に簡単です
スタッフとのメールでは、「それが仕組みです」という言葉があります。
自分で Markdown を書き、相対 URL を使用します。
または、リンクツールが私のスープに指を入れていることに気づき、投稿エディタで直接 https:// を削除して、入力した相対 URL にします。
…しかし、URL を cmd|ctr-c し、単語を入力し、単語の上に opt-shift-arrow を移動し、cmd-k を押し、cmd-v を押し、Enter を押す方が速く、すべてリンクされます。
修正
これは (最良の修正から順に) 修正されるべきだと思います…
- リンクツールで相対 URL を自動補完しない (つまり、リンクツールを修正する)
- リンクツールにスキームを追加するように強制する場合 (ブラウザは相対 URL の場合でも同じスキームを使用するため、何も意味がありません)、そのような奇妙に見えるが正しい
scheme:///pathURL が最終的な HTML レンダリングで正しく調理される (それが適切な動詞ですか?) ようにして、リンクが機能するようにします (最終的な調理/レンダリングを修正する) - いいえ?わかりました、次にリンクツールが相対 URL を見たときに、実際の
scheme://authorityを自動補完するようにします (これはおそらく、より広範なユーザーベースにとって明確に見える変更でしょう。相対パスを貼り付けない多数の Discourse ユーザー対、比較的小さい数ですが、それが何をしたかを理解するであろう、より技術に精通したフォーラムスタッフ、管理者、およびモデレーター) - 本気ですか?わかりました、リンクツールに相対 URL を入力することを禁止します (しかし、これは単に意地悪であり、人々が
cmd|ctl—kの習慣を破ることを強制します。) - 優先順位のない壊れたもののリストにこれを追加します
