Ссылки, созданные в модальном окне Composer, ломаются, если содержат ' (%27)

Отчёт @nathank был сосредоточен на конкретной узкоспециализированной задаче, которую он выполнял при столкновении с ошибкой. Однако сама ошибка никоим образом не ограничена Data Explorer. Опасаюсь, что слишком узкая направленность отчёта и использование нерелевантного тега data-explorer (правильным тегом был бы composer) могут затруднить понимание отчёта командой Discourse или привести к тому, что он не получит должного внимания.

Ошибка возникает повсеместно при следующих условиях:

При этих условиях URL всегда повреждается.

Шаги для воспроизведения:

  1. Откройте следующий URL в вашем браузере:
    https://en.wikipedia.org/wiki/Horncastle_boar%27s_head
    (обратите внимание, что URL содержит процентное кодирование символа '%27)
    :slightly_smiling_face: Открывается ожидаемая страница.
  2. Нажмите на значок «Ссылка» в редакторе поста.
    Откроется диалог «Вставить ссылку».
  3. Введите указанный выше URL в поле «Ссылка или тема» диалога.
  4. Нажмите кнопку «Вставить».

:bug: Целевая ссылка, добавленная по описанной выше процедуре, указана неверно:
https://en.wikipedia.org/wiki/Horncastle_boar%2527s_head

вместо правильного URL:
https://en.wikipedia.org/wiki/Horncastle_boar%27s_head

Ссылка не приведёт к нужной странице.

Это произошло потому, что символ % в процентном кодировании %27 был закодирован повторно, из-за чего % был заменён на собственное процентное кодирование %25. В результате корректное содержимое URL %27 было повреждено до %2527.

Платформа:

Операционная система

  • Windows 11

Браузер

  • Google Chrome 139.0.7258.128

Discourse

12c80d43adeb87cc18604ace0430a75d277d7662

Дополнительная информация:

Мне удалось воспроизвести ошибку на try.discourse.org в «безопасном режиме».


Ошибка возникает в любом режиме редактора.

3 лайка