編集中にLinkツールに入力された相対リンクが、最終的な投稿表示で機能しない

再現手順

投稿を編集し、リンクツールを使用します。相対 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 を押す方が速く、すべてリンクされます。

修正

これは (最良の修正から順に) 修正されるべきだと思います…

  1. リンクツールで相対 URL を自動補完しない (つまり、リンクツールを修正する)
  2. リンクツールにスキームを追加するように強制する場合 (ブラウザは相対 URL の場合でも同じスキームを使用するため、何も意味がありません)、そのような奇妙に見えるが正しい scheme:///path URL が最終的な HTML レンダリングで正しく調理される (それが適切な動詞ですか?) ようにして、リンクが機能するようにします (最終的な調理/レンダリングを修正する)
  3. いいえ?わかりました、次にリンクツールが相対 URL を見たときに、実際の scheme://authority を自動補完するようにします (これはおそらく、より広範なユーザーベースにとって明確に見える変更でしょう。相対パスを貼り付けない多数の Discourse ユーザー対、比較的小さい数ですが、それが何をしたかを理解するであろう、より技術に精通したフォーラムスタッフ、管理者、およびモデレーター)
  4. 本気ですか?わかりました、リンクツールに相対 URL を入力することを禁止します (しかし、これは単に意地悪であり、人々が cmd|ctl—k の習慣を破ることを強制します。)
  5. 優先順位のない壊れたもののリストにこれを追加します :wink:
「いいね!」 1

リンクモーダルへの他の変更と併せて、リッチエディタモードでリンクを編集するサポートを追加した際に、これが修正されたと考えています。

「いいね!」 1

このトピックは5日後に自動的に閉じられました。返信はもう許可されていません。