Относительные ссылки, введенные в инструмент «Ссылка» при редактировании, не работают в итоговом отображении поста

воспроизвести с

Отредактируйте пост и воспользуйтесь инструментом вставки ссылок. Вставьте относительный URL, например /g/moderators — это корректно для любой установки Discourse.

Инструмент вставки ссылок генерирует Markdown для ссылки, но разворачивает относительный URL, добавляя «https://» в начало.

Опубликуйте пост и обнаружьте, что итоговая, сгенерированная ссылка, отображаемая в посте, на самом деле не является кликабельной.

Просто как здесь — эта ссылка сломана.

*печальный тромбон*

подождите, что? scheme:///path?

Мои знания о BNR (вероятно, имеется в виду RFC) притупились, но, насколько я помню, RFC 1808 гласит, что схема без авторитета и с путем является корректной. То есть https:///g/moderators — это абсолютно легитимно. Несколько онлайн-парсеров URL, которые я проверил, согласны. Поэтому я считаю, что (хотя такие URL выглядят довольно странно) они вполне допустимы как значение атрибута HREF в теге A.

Таким образом, инструмент вставки ссылок в редакторе технически не ломает URL. Ошибка находится на этапе обработки/рендеринга/или как там это называется.

обходной путь, конечно, предельно прост

В переписке с сотрудниками сказано: «Так оно и работает».

Просто пишите Markdown самостоятельно и используйте относительный URL.

Или заметьте, что инструмент вставки ссылок лезет не в своё дело, и удалите https:// вручную прямо в редакторе поста, оставив тот относительный URL, который вы ввели.

…но быстрее скопировать какой-нибудь URL через cmd|ctrl-c, ввести текст, выделить слова с помощью opt-shift-arrow, нажать cmd-k, cmd-v, enter, и всё готово.

исправление

Я думаю, это следует исправить следующим образом (от лучшего к худшему)…

  1. Не автодополнять относительные URL в инструменте вставки ссылок (то есть исправить сам инструмент).
  2. Если вы настаиваете на том, чтобы инструмент вставки ссылок переписывал URL, добавляя схему (что не имеет смысла, так как браузеры всё равно использовали бы ту же схему, если URL относительный), то сделайте так, чтобы такие странные, но корректные URL вида scheme:///path правильно обрабатывались (правильно ли использовать глагол «обрабатывать»?) при финальном рендеринге в HTML, чтобы ссылка работала (исправить финальную обработку/рендеринг).
  3. Нет? Хорошо, тогда пусть инструмент вставки ссылок автодополняет URL полным scheme://authority, когда видит относительный URL (это, вероятно, изменение, которое будет наиболее понятно широкой аудитории: огромное количество пользователей Discourse, которые не будут вставлять относительные пути, против, вероятно, более технически подкованного персонала форума, администраторов и модераторов, которых значительно меньше, но которые поймут, что произошло, когда это случится с ними).
  4. Серьёзно? Тогда запретите вставлять относительные URL в инструмент вставки ссылок (но это просто жестоко и заставляет людей ломать привычку использовать cmd|ctl—k).
  5. Добавить это в список сломанных вещей, которые не являются приоритетными :wink:
1 лайк

Я полагаю, что это было исправлено, наряду с другими изменениями в модальном окне ссылок, когда мы добавили поддержку редактирования ссылок в режиме визуального редактора.

1 лайк

Эта тема была автоматически закрыта через 5 дней. Новые ответы больше не принимаются.