附注:当我尝试发帖时,我看到了一个弹出窗口“发生错误:抱歉,新用户每次发帖只能包含 2 个链接。”。我不知道它能阻止什么样的垃圾信息,因为一个链接对大多数垃圾信息发送者来说已经足够了,但现在我不得不将我一些格式精美的 markdown 链接替换为基于文本的脚注。默认 markdown 编辑器中添加脚注本身的过程非常不稳定且令人沮丧,足以单独报告。
附注 2:看起来基于 Markdown 的引用也被计为链接。我将它们删除,改用 Unicode 上标数字。我花了 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
附注 3:一些标准的电子邮件地址也没有被高亮显示。我将使用我的第二个链接链接到 https://e-mail.wtf 获取一些示例。
未高亮显示,但应该高亮显示:
orgmail(to John Doe)@example.com
“:(){ :|:& };:”@example.com
magic@[::1]