Баг(и) в обработке URI в markdown-контенте в Discourse

Я только что столкнулся с этой ошибкой с geo URI, которые выглядят как geo:36.95733984,-122.0172856.

Я вижу, что для tel URI есть исключение:

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

Есть Uniform Resource Identifier (URI) Schemes, но я использовал List of URI schemes - Wikipedia, чтобы проверить схемы, так как там есть примеры. Я смотрю на, э-э, «суффикс» названия схемы, :// (как это называется? «Формат схемы»?).

При тщательном визуальном осмотре кажется, что используются только три шаблона:

  • ://
  • :/
  • :

Мой мозг с трудом отслеживает, где именно это происходит в связи с написанием markdown и конвертацией в href, но я думаю, что если мы сможем понять, как проверять эти три формата, то будем в порядке для любой схемы, добавленной администратором.

Не знаю, как проводить валидацию по каждой схеме… :thinking:


Мои неофициальные кодовые названия для форматов:

  • : «наблюдающий»
  • :/ «скептически настроенный»
  • :// — «двойно скептически настроенный»
1 лайк