Лимит упоминаний пользователей: уточнить сообщение об ошибке?

Здравствуйте,

В Discourse есть функция, ограничивающая количество упоминаний пользователей в сообщениях, причём для «новых» пользователей (уровень доверия 0) это ограничение ещё строже.

Если вы не совсем понимаете, о чём речь, вот реализация в исходном коде Discourse:

Это полезная функция, но, к сожалению, несколько пользователей по ошибке упирались в этот лимит и оставались в недоумении. Дело в том, что они не хотели никого упоминать. Они просто «забыли» (или не знали, как) оформить фрагмент кода, включённый в сообщение. Поскольку этот фрагмент был на Java, он содержал аннотации, начинающиеся с @, которые интерпретировались как упоминания пользователей.

Пример такого кода:

public class MyCode {

@NotNull 
private String foo;

@NotNull 
private String bar;

@NotNull 
private String foobar;

}

Сообщение об ошибке выглядит так:

Извините, новые пользователи могут упоминать не более 2 пользователей в одном сообщении.

Представьте: пользователь, который не знает, как форматировать код в Markdown, возможно, вообще не понимает, что такое упоминание пользователя. Даже если он знаком с этой функцией, он может не осознать, что аннотация Java была воспринята как упоминание.

Так что, возможно, пользовательский опыт этой функции можно улучшить?

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

Я подумал просто расширить сообщение об ошибке, объяснив, что такое упоминание пользователя, и, возможно, дать несколько советов?

Хотя бы так:

Извините, новые пользователи могут упоминать не более 2 пользователей в одном сообщении.
Упоминания пользователей — это слова, начинающиеся с `@`, например `@johnsmith`.

А может быть, даже так:

Извините, новые пользователи могут упоминать не более 2 пользователей в одном сообщении.
Упоминания пользователей — это слова, начинающиеся с `@`, например `@johnsmith`.
Если ваше сообщение содержит исходный код, обязательно заключите его в обратные кавычки, чтобы части кода не интерпретировались как упоминания пользователей; см. <вставьте ссылки на документацию по форматированию кода в Discourse>.

Что вы думаете? Стоит ли мне отправить pull request? Боюсь, я могу обновить только английскую и французскую локализации.

Для справки, примеры запутавшихся пользователей:

Существует #theme-component, который это делает

2 лайка

Спасибо! Это здорово, я не знал, что он существует. Надеюсь, это предотвратит попадание пользователей в такую ситуацию с самого начала :slight_smile:

1 лайк

Если проблема сохраняется даже с использованием компонента темы «Unformatted Code Detector», вы также можете изменить текст этого сообщения для вашего сайта на странице /admin/customize/site_texts, а также настроить саму административную настройку newuser max mentions per post, если она создаёт больше проблем, чем решает. :slight_smile:

3 лайка

Отлично, я не знал, что можно настраивать любой текст, отображаемый в Discourse. Готово!

Тогда, полагаю, нет необходимости в pull request :slight_smile:

1 лайк