Обнаружение дубликатов ссылок игнорирует анкор

Ссылки Zulip на конкретные обсуждения содержат много информации в якорях, и перед якорем находится только домен верхнего уровня (например, rust-lang.zulipchat.com). Discourse, похоже, игнорирует якорь при определении дубликатов ссылок, что приводит к таким сообщениям:

Похоже, ваша ссылка на rust-lang.zulipchat.com уже была опубликована в теме пользователем @josh в ответе от 3 июня 2020 года — вы уверены, что хотите опубликовать её снова?

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

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

1 лайк

Для веб-приложений, подобных Zulip, которые помещают всю информацию в якорь, это фактически заставляет Discourse считать каждую ссылку на приложение дубликатом.

1 лайк

Я посмотрел на это, и это довольно странно, но воспроизвести не удалось. Нет очевидного кода, который удалял бы хэш URL при нормализации ссылок. Мы удаляем только завершающие слэши, и я обнаружил ошибку: мы должны игнорировать регистр в URL, но не делаем этого.

В примере, на который вы сослались, похоже, что ссылка была преобразована в одну строку (oneboxed) в ссылку /login. В таком случае все ссылки для входа были бы одинаковыми. Это и есть проблема?

2 лайка

Думаю, это отдельная проблема. Исходный URL отличается, и я не понимаю, почему окно предпросмотра меняет его на /login.

Впрочем, я больше не могу воспроизвести эту проблему.

1 лайк

Отличные новости, я пока закрываю.