Emoji Fluff

|||
:discourse2: | 摘要 | 为表情符号添加可选的变体或动画。
| :eyeglasses: | 预览 | 在 theme-creator.discourse.org 上预览|
:hammer_and_wrench: | 存储库链接 | GitHub - 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:

屏幕截图

可用的表情符号特效

Fluff list

如何为表情符号添加特效

从表情符号自动完成弹出窗口

fluff autocompletion

从表情符号选择器

Fluff emoji picker

通过手动输入特效后缀

Fluff suffix

特性

  • 水平或垂直镜像的表情符号

  • 动画表情符号(弹跳、旋转、脉冲等)

  • 设置以选择哪些表情符号装饰可供用户使用

  • 设置以选择在自动完成或表情符号选择器中插入装饰选择器。

  • 允许管理员创建新的特效

设置

设置 描述
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 知识。

当特效添加到帖子中的表情符号时,表情符号将被一个带有 fluff 类的 <span> 标签包装:

<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 版本在 10 月 30 日之后,并且特别支持表情符号选择器,当前版本为 2024-11-26T23:00:00Z(感谢团队几天前添加了一个插件出口!) ↩︎

38 个赞

哈哈,太棒了!太好了!:star_struck:

10 个赞

我感觉这与该组件 Omit Emoji component 冲突,导致选择表情符号的 UI 不显示该组件的魔杖。


2 个赞

我不使用该组件,但我正在使用 iPad,并且草稿已经这样做了几次——我正在为用户编写帮助。发布可以解决这个问题。

2 个赞

太棒了!干得好!!:star_struck:

(小小的吹毛求疵,用“负面”来形容是否比“反转”更好?)

5 个赞

您更新 Discourse 了吗?只有发布新测试版时您才会收到更新通知,但每天都会添加新的提交。

4 个赞

谢谢!:smile:

你说得对,现在已经重命名了!

正如 Moin 所说,您需要更新 Discourse。
我查看了主题组件的代码并进行了测试;一旦您更新了 Discourse,它们应该可以毫无问题地协同工作!:+1:

8 个赞

您好,我无法再看到添加 Emoji Fluff 组件的选项了。它是否仍然受支持?

1 个赞

我已经推送了一个修复补丁,使其能够兼容最新的 Discourse 版本。但是,这个修复只解决了自动补全功能。 :slight_smile:

目前,我无法解决表情符号选择器的问题。最近,团队已在 DEV: unifies emoji picker by jjaffeux · Pull Request #28277 · discourse/discourse · GitHub 中将表情符号选择器与聊天功能统一。不幸的是,新版本移除了之前用于插入切换按钮的表情符号选择器页脚中的插件出口。目前我还没有解决方案。很抱歉给您带来不便! :pray:

2 个赞

是提交一个新请求吗?我相信他们会欢迎这样的事情?

2 个赞

是的,我会的!

我还在考虑可能的替代方案。
如果你看看新的表情符号选择器,还有几个空位。你可能不想缩短占位符文本,但这是唯一看起来合理的位置:

也许一个图标还可以。但我觉得在这里设置插件出口似乎不合理。:smile:

2 个赞

太有趣了!

扩展目标:

3D动画 :wink:

2 个赞

为了回答这个问题,我在这里做了:

统一表情符号选择器的优点之一是 Fluff 可以与聊天配合使用!

该图片显示了用户“arkshine”在下午 2:20 发送的一条聊天消息,其中包含一个复活节彩蛋和一个笑脸表情符号。(由人工智能配字幕)

希望这个 PR 会得到一些关注!

您说的 3D 动画是指纯 CSS 配合 3D 变换吗?
像这样:
该图片显示了一个文本格式界面的截图,其中一个用于图像水平翻转的突出显示的快捷命令,伴随着一个表情中性的表情符号。(由人工智能配字幕)

3 个赞

不,我的意思是那种一个人摇头动作的完全3D效果,这当然不是一件容易的事。

也许用贴纸来处理会更好?

3 个赞

还有更多这样的吗?

chrome_Xmd6KEmSLH


编辑:

哦,@merefield,我明白了你的意思 https://meta.discourse.org/t/plugin-for-animated-stickers/123212!

我想这超出了本次 TC 的范围。要找到每个表情符号的 3D 版本并不容易。

我真的很喜欢 falco 的贴纸想法!

4 个赞

TC 已更新,可与最新版 Discourse 完全兼容。

这还增加了聊天支持!

一个显示空白白色区域的消息平台界面的屏幕截图,底部有一个“在 #Staff 中聊天”按钮和文本框。(由 AI 标注)

7 个赞

创建新的 TC,“Emoji-fluff Extras”,并添加了您 2 种新的绒毛效果。

将 spin3d 和 tilt 添加到允许的 emoji 绒毛列表中。新的示例 emoji 绒毛不起作用。将 CSS 添加到自定义 TC 的公共部分。确保将其添加到所有主题中。

1 个赞

如果您添加了 tilt 到设置中,但动画不起作用,那很可能是 CSS 不可用,除非您输入了错误。您能再检查一下您的 CSS 吗?

(我想看看您的论坛,但无法登录。我没有收到任何电子邮件,甚至无法使用 Steam 登录(不知何故,它仍然要求我检查我的电子邮件))

1 个赞

您的帐户已激活

我将需要查看电子邮件发送。您需要先拥有一个帐户,然后才能添加 Steam 登录。

CSS 是使用代码块中的快速复制功能复制的。

我用 tilt 所做的只是克隆它两次,将其更改为“tilt45”和“tilt90”。“spin3d”没有更改。

表情符号绒毛设置

Common 中的表情符号绒毛附加 CSS 内容

.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”,旁边还有一个笑脸表情符号。(由 AI 题注)

2 个赞