粘贴到 bbcode `[url` 标签时双重链接 URL 链接

继续讨论 请不要在 Markdown 中粘贴 URL 时重复链接 URL

昨天,我的网站上已修复此问题,但今天早上当我想要粘贴到现有 URL 上方时,它又回到了创建双重 URL 的状态。

你可以在 Meta 上复现这个问题吗?我想知道你是否发现了一个新的边缘情况?

1 个赞

我有一个链接,开头是“## [url= [/url]”

[## url=

然后当我尝试复制/粘贴链接时,我得到了上面的结果。它完全放在了 [url= [/url] 代码之外。

是的,我刚刚在 Meta 上这样做了。

1 个赞

那是 BBCODE 链接,我们不经常使用它们,因此我们没有为此构建启发式方法。

我们会解决这个问题,也许 @gwwar 可以提交一个 PR?

你为什么倾向于使用 BBCODE 链接而不是 Markdown 链接?主要是习惯使然?

是的,超过 10 年的习惯了。我试着改,但我的手指不听使唤。

1 个赞

当然,我可以看看是否有合适的解决方案。

1 个赞

为了方便我自己参考,url 和 email 的 bbcode 标签工作方式如下。它们也可能支持魔术链接,在这种情况下不需要指定 URI 协议。

[url=][/url]
[url=https://www.phpbb.com/]访问 phpBB![/url]
[url]https://www.phpbb.com/[/url]
[email]example@example[/email]

https://www.phpbb.com/community/help/bbcode

行为方面,我认为测试文本选择是否包含 bbcode 电子邮件或 url 标签是合理的。根据大家遇到的情况,如果我们检测到任何 bbcode 标签,我们也可以将测试范围扩大到默认粘贴行为。

3 个赞

我在这里添加了一个 PR。如果这不是大家设想的用例,请告诉我。

4 个赞

抱歉再次提起此事,但請問是否有修復此問題的時間表?我知道有時需要幾天時間,但截至今天早上,此問題仍然存在。

PR 已获批准,但需要 Discourse 团队成员合并。@eviltrout 我们还在等待其他反馈吗?

@Slowhand 我可以再确认一下吗?在粘贴之前,您突出显示了多少 [url 标签?如果我理解正确的话,我认为 @gwwar 的 PR 只涵盖了下面的选项 1。这能解决您的问题吗?


选项 1:

<pre>
This is a sentence with <mark>[url=discourse.org]A link[/url]</mark>
</pre>

选项 2:

<pre>
This is a sentence with [url=<mark>discourse.org</mark>]A link[/url]
</pre>

选项 3:

<pre>
This is a sentence with [url=discourse.org]<mark>A link</mark>[/url]
</pre>

选项 2 是我遇到麻烦的那个。

您能提供一个起始示例吗?使用我上面发布的 Option 2,即使没有新的 PR,它似乎也能正常工作。

discourse.org 被识别为现有 URL,因此绕过了花哨的粘贴行为 :thinking:

对于选项 2,我们有来自动漫网站的每日特价链接,所以我通常只是将前几天的链接复制/粘贴到新帖子中,然后进行更改,这样就省去了输入所有代码的麻烦。

例如:今天早上我复制了昨天的交易

并粘贴了包含今日交易的链接

导致出现这种情况:
image

如果我选择这个

<pre>
[url=<mark>https://www.rightstufanime.com/Some-Link</mark>]Text[/url]
</pre>

然后粘贴

https://www.rightstufanime.com/Deca-Dence-Blu-ray
</pre>

我得到的结果是:

<pre>
[url=https://www.rightstufanime.com/Deca-Dence-Blu-ray]Text[/url]
</pre>

你能在这里的 Meta 上重现你遇到的问题吗?(请注意,[url 标签在这里实际上不会渲染,但你仍然可以尝试作曲家的行为)

根据你的最后一张截图,我认为你可能选择了整行,包括项目符号和 [url=blah]test[/url] 包装器?(即,几乎与上面的“选项 1”相同)?

我在 Meta 上无法重现此行为。

我不认为我选择了整行,因为我不想重新输入所有代码。我想我偶尔可能会意外地选中整个行,但最近我一直很小心,因为这个问题。

但是,我问你,如果我确实选择了整行,这是正确的行为吗?它没有只粘贴我粘贴的内容,而是在末尾添加它,并保留我最初突出显示的内容?

再次为我的技术不精通道歉,这有点超出我的理解范围。
如果我真的需要改变我的做法,我会的。

1 个赞

好的,这非常有趣!为了确认,您能否在您自己的论坛上再次重现一次?如果有差异,请告知我们,以便我们能够彻底解决。

我认为“不”,这不是正确的行为。我们绝对应该修复它,而 @gwwar 的 PR 确实做到了。我只是想弄清楚确切的用例是什么,以确保我们覆盖了所有方面。

我现在将合并该 PR,因此在接下来的几天内它应该会部署到您的站点 @Slowhand

感谢您耐心回答我所有的问题! :sweat_smile:

不,一样。

非常感谢您的所有帮助!

1 个赞

请注意,选项 2 理论上应由

处理。

如果用户在其他边界情况下仍然遇到问题,则可以添加站点或用户设置来切换行为。

3 个赞

此主题已在 10 天后自动关闭。不再允许回复。