Отчёт @nathank был сосредоточен на конкретной узкоспециализированной задаче, которую он выполнял при столкновении с ошибкой. Однако сама ошибка никоим образом не ограничена Data Explorer. Опасаюсь, что слишком узкая направленность отчёта и использование нерелевантного тега data-explorer (правильным тегом был бы composer) могут затруднить понимание отчёта командой Discourse или привести к тому, что он не получит должного внимания.
Ошибка возникает повсеместно при следующих условиях:
- URL содержит процентно-закодированный контент.
- Ссылка добавляется в пост через диалог «Вставить ссылку».
При этих условиях URL всегда повреждается.
Шаги для воспроизведения:
- Откройте следующий URL в вашем браузере:
https://en.wikipedia.org/wiki/Horncastle_boar%27s_head
(обратите внимание, что URL содержит процентное кодирование символа'—%27)
Открывается ожидаемая страница. - Нажмите на значок «Ссылка» в редакторе поста.
Откроется диалог «Вставить ссылку». - Введите указанный выше URL в поле «Ссылка или тема» диалога.
- Нажмите кнопку «Вставить».
Целевая ссылка, добавленная по описанной выше процедуре, указана неверно:
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 в «безопасном режиме».
Ошибка возникает в любом режиме редактора.