Не могли бы вы также добавить краткое описание проблемы, с которой вы столкнулись, или объяснение, почему эта настройка пользователя будет полезна, в первом посте? Это сделает запрос на новую функцию более полным (и сэкономит людям время на поиск информации по ссылкам )
Как француз, я иногда ввожу <пробел>:<enter>. (<enter> нужен для создания новой строки, а не для подтверждения предложенного эмодзи.)
Я также часто ввожу смайлики, особенно «:-)», и часто в конце строки. Они преобразуются в ":slight_smile: ". Мне это не нравится, потому что, хотя результат тот же, это усложняет проверку сообщения перед публикацией.
Я пользуюсь сайтом discourse.gnome.org, но там мне сказали, что не могут помочь, так как это настройка на уровне всего сайта. Вот почему я хотел бы, чтобы вы сделали её настройкой на уровне пользователя, пожалуйста.
Альтернатива: вы могли бы найти другой способ подтверждения предложенного эмодзи в функции автодополнения (возможно, <tab>?), чтобы <enter> воспринимался как продолжение ввода, игнорируя предложения, как и <пробел>.
Извините, это значит, что мне следует отредактировать первый пост вместо того, чтобы писать ниже него?
Как разработчик, я ненавижу оставлять лишние пробелы там, где они бесполезны. Это грязная работа.
Поэтому у меня есть привычка набирать <пробел>:<enter>, и мне совсем не хотелось бы приобретать рефлекс <пробел>:<пробел><enter>.
<пробел>:<пробел><backspace><enter> тоже не работает, так как снова открывает окно автодополнения.
Суть в следующем: у меня есть привычка набирать <пробел>:<enter> в любом простом текстовом редакторе, и я очень хочу, чтобы в Discourse это давало тот же результат. То есть все эти клавиши должны восприниматься как поток ввода / поток текста (не только <пробел>), поэтому предложения автодополнения должны игнорироваться.
Почему бы не использовать Enter вместо enter (тот, что на цифровой части клавиатуры)?
Поскольку для выбора эмодзи используются стрелка вверх / стрелка вниз, можно было бы использовать стрелка вправо для подтверждения, учитывая, что стрелка влевострелка вправо не открывает окно автодополнения снова.
Хм, извините, я не совсем понимаю вашу аргументацию. Просто для уточнения: я предложил вам простое решение, но вы говорите, что его недостаточно, потому что у вас есть привычка использовать :return, поэтому вы считаете, что нам следует добавить новую функциональность в настройки пользователя для этого? К слову, я не припоминаю, чтобы видел этот конкретный запрос на добавление функции раньше.
а :<space><backspace><return> — это не обходной путь,
и я не хотел бы вырабатывать рефлекс :<space><return> и вводить его в любом простом текстовом редакторе, так как это создаст проблемы, особенно в коде и официальной документации.
Какая это новая функция?
Как я понял: уже существует настройка на уровне всего сайта, и я предлагаю сделать эту настройку на уровне пользователя.
Я только что обнаружил, что в GitLab также есть функция автозаполнения, похожая на ту, что в Discourse, за исключением того, что при открытии окна автозаполнения эмодзи не выбран, поэтому пользователю нужно нажать , чтобы выбрать первый предложенный эмодзи.
Затем :<return> рассматривается как обычный ввод текста, и предложения автозаполнения игнорируются.
Окно автозаполнения открывается даже тогда, когда : вводится после букв, и я не думаю, что это кого-то беспокоит.
Пользователям приходится вводить вместо , чтобы получить первый предложенный эмодзи.
Пожалуйста, учтите либо решение для GitLab, либо отключение на уровне пользователя, чтобы мне больше не нужно было вставлять <escape> в процессе набора текста.
Я бы хотел поддержать этот запрос. У меня были пользователи, которые просили отключить для них смайлики, так как они хотят вводить старые, классические варианты, например : )
Хотят ли ваши пользователи, чтобы Discourse отображал :-) вместо :-)?
Если да, то, если вы администратор, вы уже можете отключить смайлики для всего сервера (отключение на уровне сайта).
Если вы хотите отключить смайлики для конкретного пользователя, уточните: вы хотите, чтобы смайлики были отключены для всех постов, которые он читает, или только для его собственных постов?
В первом случае будьте осторожны: я не думаю, что Discourse преобразует :slight_smile: в :-), если сообщение написано пользователем, у которого смайлики не отключены.
Для себя я попросил отключить только автозаполнение эмодзи, потому что меня беспокоит только процесс написания постов, когда вместо :-) отображается :slight_smile:. Но меня не беспокоит видеть :-) ни в панели предварительного просмотра, ни при чтении постов.
Если кто-то хочет добавить логику для отключения рекомендателя эмодзи в компоненте темы, подойдет что-то вроде приведённого ниже. (Я начал создавать концепт-доказательство, но в текущем виде эмодзи всё ещё отображаются, просто они не рекомендуются в редакторе сообщения).
Вам нужно будет реализовать условия, при которых рекомендатель будет обходиться. Обратите внимание: отключается только сам рекомендатель. Эмодзи всё равно будут отображаться, если пользователь введёт что-то вроде :persevering_face:.
import { withPluginApi } from "discourse/lib/plugin-api";
export default {
name: "disable-emoji-autocomplete-non-staff",
initialize() {
withPluginApi("0.8.12", (api) => {
api.modifyClass("component:d-editor", {
_applyEmojiAutocomplete() {
let isGroupMember = ...логика для получения списка участников...;
// Применять автодополнение эмодзи только для сотрудников
if (!isGroupMember) {
// Или, возможно, вы захотите отключить подсказку эмодзи для участников группы hate_emoji
return; // отключает автодополнение для не-сотрудников
}
// В противном случае возвращаемся к исходному поведению
this._super(...arguments);
},
});
});
},
};
Если вам нужен полностью рабочий компонент темы, который включает или отключает рекомендатель эмодзи в зависимости от группы (или, возможно, по какому-то другому критерию?), вы можете сослаться на него в своей теме в Marketplace.