在编辑过程中输入的相对链接到Link工具中,在最终帖子显示时不起作用

重现方法

编辑帖子并使用链接工具。粘贴相对 URL,例如 /g/moderators 在任何 Discourse 安装上都应该是合法的。

链接工具会生成链接的 Markdown,但会将相对 URL 扩展为在前面加上“https://”。

发布后会发现最终显示的链接实际上不是一个可点击的链接。

就像这里一样 这样 链接坏掉了。

*悲伤的伸缩号*

等等,scheme:///path

我的 BNR 已经生疏了,但我相信 RFC 1808 说 Scheme,没有 authority,并且有 path,是合法的。即 https:///g/moderators 完全合法。我尝试过的几个在线 URL 解析器也同意。所以我认为(尽管看起来很奇怪的 URL)作为 A 标签的 HREF 属性值,应该是没问题的。

因此,编辑器中的链接工具在技术上并没有破坏 URL。错误在于 cook/render/whatever 阶段。

解决方法很简单

在与员工的电子邮件中,这句话是:“它就是这样工作的。”

自己写 Markdown 并使用相对 URL。

或者注意到链接工具在捣乱,直接在帖子编辑器中将 https:// 编辑掉,改为我输入的相对 URL。

……但手动输入 URL、输入文字、按 opt-shift-arrow 选择一些文字、按 cmd-k、cmd-v、enter,然后链接起来,会更快。

修复

我认为这应该通过(优先修复)来解决……

  1. 不要在链接工具中自动完成相对 URL(即修复链接工具)
  2. 如果你坚持让链接工具重写以添加 Scheme(这没有任何作用,因为浏览器无论如何都会使用相同的 Scheme,如果 URL 是相对的),那么让这种看起来奇怪但正确的 scheme:///path URL 在最终的 HTML 渲染中正确地 cook(这是正确的动词吗?)以便链接能够工作(修复最终的 cook/rendering)
  3. 不行?好吧,那么让链接工具在看到相对 URL 时,用实际的 scheme://authority 自动完成 URL(这可能是对最广泛用户群体来说最清晰的改变:大量的 Discourse 用户 不会粘贴相对路径,而相对来说数量非常少但可能更懂技术的论坛 员工管理员版主,当他们这样做时会理解它的作用。)
  4. 真的吗?好吧,那么不允许在链接工具中输入相对 URL(但这太糟糕了,而且会迫使人们打破他们 cmd|ctl—k 的习惯。)
  5. 将此添加到未优先处理的损坏列表;)
1 个赞

我相信这已经修复了,同时还对链接模态框进行了其他更改,当我们添加对使用富文本编辑器模式编辑链接的支持时。

1 个赞

此主题已自动关闭,距离上次活动已有 5 天。不再允许回复。