Не могли бы вы добавить краткое описание проблемы, с которой вы столкнулись, и пояснить, почему эта настройка будет полезна, также в первом сообщении? Это сделает запрос на добавление новой функции (Contribute > Feature request) более полным и понятным (и сэкономит время другим участникам, которым не придётся искать информацию по ссылкам )
Как француз, я иногда нажимаю <space>:<return>. (<return> хочет создать новую строку, а не подтвердить предлагаемый эмодзи.)
Я также часто набираю смайлики, в частности «:-)», и всё ещё в конце строки. Он преобразуется в «:slight_smile:». Мне это не нравится, потому что, даже если результат одинаковый, это затрудняет просмотр сообщения перед его отправкой.
Я пользователь discourse.gnome.org, и они говорят, что не могут мне помочь, потому что это глобальная настройка сайта. Вот почему я хотел бы, чтобы вы сделали это настройкой пользователя, пожалуйста.
Альтернатива: Вы можете найти другой способ подтверждения предлагаемого эмодзи в функции автозаполнения (например, <tab>), чтобы <return> считался продолжением набора текста, игнорируя предложения, как <space>.
Извините, это значит, что мне следует отредактировать первый пост вместо того, чтобы писать ниже него?
Как разработчик, я ненавижу оставлять лишние пробелы там, где они бесполезны. Это грязная работа.
Поэтому у меня есть привычка набирать <пробел>:<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.