Различные обсуждения эмодзи

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

div.chat-message-text img.emoji[src*="uploads"] { /* Сообщения чата */
    width: auto;
    height: auto;
}

span.user-status-message img.emoji[src*="uploads"] { /* Статус пользователя в чате */
    width: auto;
    height: auto;
}

Вы бы поступили так же? Если да, возможно, стоит добавить это в пост вики выше. Если нет, я с радостью оптимизирую свой CSS-код. :wink:

Я настроил новые эмодзи, но не могу найти их среди других эмодзи.

Вы прокрутили список эмодзи до самого низа? Именно там находятся ваши пользовательские группы эмодзи.

Эти наборы были обновлены:

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

У меня есть небольшая коллекция пользовательских эмодзи, которые я люблю загружать во все свои форумы Discourse. Некоторые из них — иконки FontAwesome, которые мне удобно использовать в виде :icon-name: при написании постов, чтобы объяснять пользователям элементы интерфейса Discourse. Другие просто для развлечения, например, флаг Йоркшира. Они хранятся в папках (и, полагаю, их легко можно было бы разместить и в онлайн-репозитории GitHub).

Мне хотелось бы иметь возможность загружать эти папки целиком, за один раз, в интерфейс пользовательских эмодзи. В настоящее время лимит на загрузку зависит от настройки simultaneous_uploads («Максимальное количество файлов, которые можно перетащить в редакторе»), которая ограничена значением 20 (Ошибка: «simultaneous_uploads: Значение должно быть в диапазоне от 0 до 20», если попытаться увеличить его выше, даже временно).

С интересом изучил другую настройку эмодзи — external-emoji-url, которая позволяет задать URL для внешнего набора эмодзи, но, к сожалению, она заменяет все «стандартные» эмодзи, а я не хочу их терять.

Мне нужно лишь одно: чтобы загрузка папок с пользовательскими эмодзи работала так же, как сейчас работает загрузка отдельных пользовательских эмодзи. Либо, если бы не было лимита на количество загрузок (возможно, задачу загрузки можно было бы отправить в Sidekiq для асинхронного выполнения с уведомлением администраторов PM по завершении, как это делается при массовой рассылке приглашений).

Я также изучил возможность использования REST API Discourse для этой цели, но пользовательские эмодзи через него не доступны. Загрузки доступны в API, и у меня это даже работало, но даже при использовании типа custom_emoji для загрузки эмодзи они не появляются в списке.

Просто интересно узнать мнение сообщества о том, какой путь развития был бы лучшим:

  • Задача Rake для автоматизации создания пользовательских эмодзи?
  • Выполнение через консоль Rails?
  • Изменение лимитов загрузки в административном интерфейсе для одновременной загрузки нескольких сотен файлов?
  • Добавление функции «загрузка папки» в административный интерфейс?
  • Сделать пользовательские эмодзи темой-компонентом, которую можно развернуть и добавить через URL GitHub? (Мне нравится простота этого варианта)
  • Разрешить несколько внешних URL эмодзи, чтобы можно было иметь как набор эмодзи, так и свои пользовательские (возможно, размещённые в репозитории GitHub Pages)?
  • Создать единый репозиторий «эмодзи и пользовательские эмодзи», к которому можно обращаться по URL?

ИЛИ — есть ли другой способ сделать все иконки FontAwesome, которые Discourse использует в своём интерфейсе, доступными в редакторе с использованием синтаксиса :icon-name:? На самом деле, большинство моих задач связано именно с этим. Настройка сайта, которая сделает иконки интерфейса доступными в редакторе, решила бы 90% моих проблем.

Для похожего случая я использовал компонент темы Discourse Icon, может быть, это поможет?

Пример из темы:

Это иконка [wrap=icon id=far-square][/wrap] и иконка [wrap=icon id=pencil][/wrap].

Это иконка и иконка .

Спасибо @JammyDodger, это полезно, и я определённо рассмотрю такой вариант, даже если UX синтаксиса [wrap=icon id=icon-name][/wrap] не так хорош, как у :icon-name:.

Недостаток подхода с иконками Discourse заключается в том, что мне приходится вручную добавлять список всех иконок, которые я хочу использовать, в настройку сайта «Подмножество SVG-иконок». Но хотя бы это можно сделать за один раз, скопировав список из текстового файла.

Судя по вашему описанию, вам не придётся добавлять много нового. Настройка предназначена для добавления дополнительных иконок. Все иконки, используемые на форуме, уже доступны.

Где они доступны? Я бы приветствовал это, если бы они были. Но мне не удаётся получить к ним доступ с помощью синтаксиса типа :icon-name:

Я просто хочу легко сообщать людям, например, что для добавления в пост даты и времени с учётом часового пояса нужно использовать кнопку :calendar-days: на панели инструментов редактора. Однако при поиске среди встроенных эмодзи/иконок ближайшим вариантом, который я могу найти, является :spiral_calendar:.

Они работают с синтаксисом обертки и иконкой Discourse, не добавляя их в svg icon subset.

Ответ касался вашего замечания о том, что недостатком является необходимость добавлять все иконки.


Возможно, сработает использование watched-words для замены :calendar-days: на [wrap=icon id=calendar-days][/wrap] :thinking:

Ах, понятно, спасибо и извините за моё недопонимание. Это великолепно. Значит, я могу использовать в любом месте с помощью синтаксиса обёртки! Каждый день — учебный день в школе Discourse!

Единственная недостающая часть — возможность легко искать название иконки Discourse, которое мне нужно, но, думаю, я всегда могу использовать инспектор браузера, чтобы найти имя d-icon- и внести соответствующие корректировки. Или сайт FontAwesome.

Спасибо @Moin

Что-то изменилось с момента моего последнего обновления Discourse (несколько дней назад).

Вместо

image

теперь выглядит так:

image

Когда я проверяю CSS, там есть элемент.style (то есть стиль внутри HTML для этого эмодзи) aspect-ratio: 20 / 20;, и если его отключить, эмодзи выглядит как положено.

Что делать?

(Кстати, «Choker» не имеет ничего общего с этим. Это про дайвинг, а не про другие вещи :-P, и добавлено просто чтобы видеть размер текста в сообщении.)

Вы можете добавить эти строки CSS в свою тему:

.emoji-custom {
    aspect-ratio: unset !important;
}

Это переопределит aspect-ratio: 20/20.

Отлично, спасибо, это сработало! :+1:

Могу я спросить:

Какова цель установки соотношения сторон в последнем выпуске?

И почему этот CSS, а также упомянутый выше код, не включены в ядро Discourse? Это что-то ломает, или слишком мало людей используют пользовательские эмодзи/смайлики?

Честно говоря, я не знаю, думаю, это связано с этим обсуждением