Discourse 在 markdown 内容中处理 URI 时存在错误

我刚刚遇到了一个与 geo URI 相关的 bug,其格式类似于 geo:36.95733984,-122.0172856

我注意到 tel URI 有一个特例:

    if (allowedHrefSchemes.includes("tel")) {
      extraHrefMatchers.push(new RegExp("^tel://\\+?[\\w\\.\\-]+", "i"));

虽然 IANA 有 Uniform Resource Identifier (URI) Schemes 的官方列表,但我还是用了 List of URI schemes - Wikipedia 来核对各种方案,因为那里包含了示例。我正在查看的是那个……嗯……方案名称的“后缀”,即 ://(这个该怎么称呼?“方案格式”?)。

通过仔细观察,似乎只使用了三种模式:

  • ://
  • :/
  • :

我的大脑有点难以追踪这与编写 Markdown 并转换为 href 的具体关联,但我想如果我们能弄清楚如何检查这三种格式,那么对于管理员添加的任何方案都应该没问题了。

至于如何按方案进行验证……我还没头绪……:thinking:


我为这些格式起的非正式代码名称:

  • : “观察模式”
  • :/ “怀疑模式”
  • :// “双重怀疑模式”
1 个赞