Пользовательские ссылки в заголовке отказываются принимать URL Matrix

Двойной # приводит к сбою валидации настройки объекта в ядре (не в самом этом тест-кейсе).

bad URI(is not URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)

Это не является строго корректным URI, поэтому фрагмент необходимо закодировать.
Вот так; использование https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org сработает.

Посмотрим на код:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url определён здесь:

Вы можете увидеть, что у них уже есть другая функция для обработки такой ситуации, и она используется в других местах:

Полагаю, разумно использовать relaxed_parse для валидации URL объекта темы.
Например: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)

6 лайков