Эмодзи-флуд

:discourse2: Краткое описание Добавляет необязательные вариации или анимации к эмодзи.
:eyeglasses: Предпросмотр Предпросмотр на theme-creator.discourse.org
:hammer_and_wrench: Ссылка на репозиторий https://github.com/arkshine/discourse-emoji-fluff
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

:information_source: Этот компонент требует, чтобы версия Discourse была актуальной на 2024-11-26T23:00:00Z. [1]

Описание

Emoji Fluff позволяет пользователям размещать в своих сообщениях зеркально отраженные или анимированные эмодзи.
Он позволяет создавать эффектные композиции с эмодзи, такие как:

flexing emoji

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

Примеры: :bike:f-slide, :smile:f-bounce

Горизонтальное и вертикальное отражение можно комбинировать с другими украшениями.

Примеры:

  • :horse:f-slide,flip:
  • :spider:f-float,flip_v:

Скриншоты

Доступные эффекты Emoji Fluff

Fluff list

Как добавить эффект к эмодзи

Через всплывающее окно автодополнения эмодзи

fluff autocompletion

Через селектор эмодзи

Fluff emoji picker

Вручную добавив суффикс эффекта

Fluff suffix

Возможности

  • Горизонтальное или вертикальное отражение эмодзи

  • Анимированные эмодзи (прыжок, вращение, пульсация и т.д.)

  • Настройка выбора доступных пользователям украшений эмодзи

  • Настройка выбора места вставки селектора украшений: в автодополнение или в селектор эмодзи.

  • Разрешение администраторам создавать новые эффекты (fluffs)

Настройки

Настройка Описание
enabled Включить или отключить функциональность компонента.
Значение по умолчанию: true
Отключение предотвратит применение украшений эмодзи.
Это полезно, если вы хотите приостановить работу компонента или планируете его удалить, но не хотите видеть код украшений, например :slightly_smiling_face:spin:, в сообщениях.
Для получения дополнительной информации ознакомьтесь с разделом Откат украшений эмодзи в теме.
allow decorations Список разрешенных украшений.
Значение по умолчанию: flip|flip_v|spin|pulse|bounce|wobble|float|slide|fade|negative|hue|gray
allow selector in Где должен быть доступен селектор эффектов.
Значение по умолчанию: both
none – отключить селекторы.
both – включить селектор в автодополнении и в селекторе эмодзи.
autocomplete – включить селектор только в автодополнении.
emoji-picker – включить селектор только в селекторе эмодзи.

:globe_showing_europe_africa: Кроме того, строки темы компонента можно перевести через настройки.

Откат украшений эмодзи

Если вы отключите компонент, эти суффиксы останутся, и эмодзи будут выглядеть так: :smile:f-spin:

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

Вы можете загрузить и выполнить задачу rake для окончательного удаления суффиксов эффектов из сообщений.

wget -P lib/tasks/ https://raw.githubusercontent.com/Arkshine/discourse-emoji-fluff/refs/heads/main/tasks/fluff.rake
rake fluff:delete_all

:information_source: Задача rake по умолчанию не создает ревизии постов. Вы можете добавить false в качестве аргумента, чтобы изменить это поведение: rake fluff:delete_all[false]

Прочитайте Administrative Bulk Operations для получения инструкций по входу в контейнер для выполнения задачи rake.

:warning: Всегда делайте резервную копию перед выполнением этой задачи. Нет гарантии, что она не удалит нежелательные строки. Используйте на свой страх и риск, и просмотрите код, если сомневаетесь.

Создание собственных эффектов

Создание эффектов требует знания CSS.

Когда эффект добавляется к эмодзи внутри поста, эмодзи оборачивается в тег <span> с классом fluff:

<span class="fluff fluff--bounce">
  <img src="https://your.discourse.com/images/emoji/twitter/kangaroo.png?v=12" title=":kangaroo:" class="emoji" alt=":kangaroo:" loading="lazy" width="20" height="20" style="aspect-ratio: 20 / 20;">
</span>

Добавьте пользовательский CSS в вашу тему или новый компонент темы, чтобы добавить новые эффекты.
Вот два примера новых эффектов:

Наклон эмодзи на 90°

Emoji tilt

.fluff--tilt img {
  transform: rotate(90deg);
}

Эффект 3D-вращения

Emoji 3D spin

.fluff--spin3d img {
  animation: f-spin3d 2s infinite linear;
}

@keyframes f-spin3d {
  0% {
    transform: perspective(50em) rotateY(0deg);
    filter: brightness(1);
  }
  50% {
    transform: perspective(50em) rotateY(90deg);
    filter: brightness(0.85);
  }
  51% {
    transform: perspective(50em) rotateY(91deg);
    filter: brightness(1.15);
  }
  100% {
    transform: perspective(50em) rotateY(180deg);
    filter: brightness(1);
  }
}

Затем вам нужно добавить суффикс эффекта в раздел Разрешенные украшения Emoji Fluff:

Вот и всё; ваши новые эффекты теперь должны быть доступны пользователям. Приятного использования!

Благодарности

  • @Canapin: Первоначальная идея, общая помощь в подготовке и тестировании этой TC.

  1. Если быть точным, TC требует версию Discourse не ранее 30 октября, а именно поддержку выбора эмодзи, актуальную на 2024-11-26T23:00:00Z (благодарим команду за добавление плагин-аулета несколько дней назад!) ↩︎

39 лайков

ха-ха, это здорово! très bien! :star_struck:

10 лайков

У меня есть ощущение, что это конфликтует с этим компонентом Omit Emoji component, из-за чего в интерфейсе выбора эмодзи не отображается волшебная палочка компонента


2 лайка

Я не использую этот компонент, но я работаю на iPad, и Drafting уже несколько раз так делал — я пишу справку для пользователей. Публикация исправляет это.

2 лайка

Это потрясающе! Отличная работа!! :star_struck:

(маленькое замечание: не лучше ли описать это как «отрицательный», а не «инвертировать»?)

5 лайков

Вы обновили Discourse? Уведомление об обновлении приходит только при выпуске новой бета-версии, однако новые коммиты добавляются каждый день.

4 лайка

Спасибо! :smile:

Вы правы; название уже изменено!

Как отметил Мони, вам нужно обновить Discourse.
Я изучил код компонента темы и протестировал его; после обновления Discourse они должны работать вместе без проблем! :+1:

8 лайков

Привет, я больше не вижу опцию добавления компонента Emoji Fluff. Он всё ещё поддерживается?

1 лайк

Я добавил частичное исправление, чтобы оно работало с последней версией Discourse. Однако это исправление касается только функции автодополнения. :slight_smile:

В данный момент мне не удаётся решить проблему с пикером эмодзи. Недавно команда объединила пикер эмодзи с чатом в DEV: unifies emoji picker by jjaffeux · Pull Request #28277 · discourse/discourse · GitHub. К сожалению, плагин-аутлет в подвале пикера эмодзи, который ранее использовался для вставки переключателя, был удалён в новой версии. На данный момент у меня нет решения. Приношу извинения за неудобства! :pray:

2 лайка

Новый PR? Я думаю, они приветствуют такие вещи?

2 лайка

Да, я согласен!

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

Это может подойти для одной иконки. Но мне кажется, что размещение здесь магазина плагинов не выглядит разумным. :smile:

2 лайка

Отличное развлечение!

Дополнительная цель:

3D-анимация :wink:

2 лайка

Чтобы ответить на это, я сделал здесь:

Одно из хороших свойств унифицированного выбора эмодзи заключается в том, что Fluff будет работать с чатом!

На изображении показано сообщение в чате в 14:20 от пользователя по имени "arkshine", содержащее пасхалку и эмодзи улыбающегося лица. (Подписано ИИ)

Надеюсь, PR привлечёт внимание!

Под 3D-анимацией вы имеете в виду чистый CSS с 3D-трансформацией?
Например, так:
На изображении показан скриншот интерфейса форматирования текста с выделенной командой быстрого доступа для горизонтального отражения изображения, сопровождаемой эмодзи с нейтральным выражением. (Подписано ИИ)

3 лайка

Нет, я имел в виду полноценный 3D-эффект кивающей головой, что, конечно, не является тривиальной задачей.

Возможно, лучше решить это с помощью стикеров?

3 лайка

Больше похоже на это?

chrome_Xmd6KEmSLH


РЕДАКТИРОВАНИЕ:

О, @merefield, я понял, что вы имели в виду под Plugin for animated stickers!

Полагаю, это выходит за рамки данной задачи (TC). Было бы нелегко найти 3D-версию каждого эмодзи.

Мне очень нравится идея со стикерами от falco!

4 лайка

TC обновлён для полной совместимости с последней версией Discourse.

Также добавлена поддержка чата!

Скриншот интерфейса платформы обмена сообщениями, на котором отображается пустая белая область с кнопкой «Чат в #Staff» и полем ввода внизу. (Подпись сгенерирована ИИ)

7 лайков

Создайте новый TC «Emoji-fluff Extras» и добавьте свои 2 новых эффекта fluff.

Добавлены spin3d и tilt в разрешённый список emoji fluff. Пример нового emoji fluff не работает. CSS добавлен в common в пользовательском TC. Убедитесь, что он добавлен во все темы.

1 лайк

Если вы, например, добавили tilt в настройки, а эффект не работает, скорее всего, проблема в том, что CSS не подключён, если только вы не допустили опечатку. Можете ли вы ещё раз проверить свой CSS?

(Я хотел зайти на ваш форум, но не могу войти в систему. Я не получаю никаких писем и даже не могу войти через Steam (по какой-то причине система всё ещё просит меня проверить почту)).

1 лайк

Я активировал ваш аккаунт.

Нужно будет разобраться с отправкой электронной почты. Для добавления входа через Steam у вас должен быть уже создан аккаунт.

CSS был скопирован с помощью быстрой копировки из ваших блоков кода.

Все, что я сделал с tilt, — это дважды клонировал его, изменив названия на «tilt45» и «tilt90». Для «spin3d» изменений не вносил.

Настройка Emoji fluff

Дополнительный CSS-контент для Emoji-fluff в Common

.fluff--tilt45 img {
  transform: rotate(45deg);
}
.fluff--tilt90 img {
  transform: rotate(90deg);
}
.fluff--spin3d img {
  animation: f-spin3d 2s infinite linear;
}

@keyframes f-spin3d {
  0% {
    transform: perspective(50em) rotateY(0deg);
    filter: brightness(1);
  }
  50% {
    transform: perspective(50em) rotateY(90deg);
    filter: brightness(0.85);
  }
  51% {
    transform: perspective(50em) rotateY(91deg);
    filter: brightness(1.15);
  }
  100% {
    transform: perspective(50em) rotateY(180deg);
    filter: brightness(1);
  }
}

Примечание: Проблема с отправкой электронной почты выявлена. Я превысил свой лимит в 300 дней более чем на 109 дней. Придётся в ближайшее время перейти на платный тариф. Спасибо, что предупредили.

1 лайк

Вы решили свою проблему?

У меня всё работает:

На изображении показан скриншот текстового редактора с введённым заголовком темы «XR Hardware» и смайликом улыбающегося лица рядом. (Подпись сгенерирована ИИ)

2 лайка