本指南介绍如何通过选择表情符号集、上传新表情符号、配置站点设置以及调整表情符号大小来自定义 Discourse 站点的表情符号。
所需用户权限:管理员
选择表情符号集
Discourse 目前支持五种表情符号集:
- Fluent UI
- Noto
- OpenMoji
- Twemoji
- Standard (Unicode)
如需了解不同表情符号集的外观对比,可以查看 此表情符号集对比。你可以在 /admin/config/emoji/settings 配置 emoji_set 站点设置以及其他与表情符号相关的设置。
添加自定义表情符号
要添加自定义表情符号:
-
导航至 Admin → Appearance → Emoji(位于
/admin/config/emoji) -
点击 Add emoji 按钮以命名、分类并上传你的表情符号图片
如果你有多个表情符号文件要上传,可以在文件选择器中选择最多 10 个图片文件进行批量上传。在这种情况下,图片文件名将用作表情符号名称。
批量导入自定义表情符号
你可以通过包含 emojis.csv 清单的单个 ZIP 文件导入最多 1000 个表情符号。CSV 文件必须包含以下带有标题的列:name、group、filename。
name,group,filename
emoji_a,group_name,image.png
导入过程完全依赖清单。如果文件或行缺失,将被跳过。group 字段可以留空,在这种情况下,自定义表情符号将被添加到 default 组。
要导入:
-
导航至 Admin → Appearance → Emoji(位于
/admin/config/emoji) -
点击 Import 按钮,并选择包含你表情符号的 ZIP 文件。
-
预览导入并确认更改。你可以在此处通过选择要保留的表情符号来解决任何冲突。如果已存在具有相同名称(但不同组/图片)的表情符号,则会发生冲突。要完成导入,点击 Confirm import。
批量导出自定义表情符号
自定义表情符号可以导出为单个 ZIP 文件。生成的 ZIP 文件将包含一个 emojis.csv 清单,无需修改即可导入到任何 Discourse 站点。其中包含每个表情符号的图片、名称和组。
要导出,点击 Select to export 按钮,并选择你要导出的所有表情符号。准备就绪后,点击 Export 按钮,将下载一个 ZIP 文件。
将表情符号固定到选择器顶部
你可以将任何表情符号组固定到表情符号选择器的顶部。通过 Admin → Appearance → Emoji → Settings(位于 /admin/config/emoji/settings)访问设置 emoji_picker_pinned_groups。输入要固定到选择器顶部的表情符号组名称。
自定义和常规表情符号组都可以固定到顶部。例如,输入 flags 会将旗帜表情符号组移动到笑脸表情符号组上方的顶部。
默认表情符号组名称:
smileys_&_emotionpeople_&_bodyanimals_&_naturefood_&_drinktravel_&_placesactivitiesobjectssymbolsflags
表情符号设置
你可以在 /admin/config/emoji/settings 访问表情符号设置,以自定义表情符号在你站点上的行为。
enable_emoji- 启用 Discourse 实例中表情符号的显示和使用。如果禁用,表情符号将不会渲染,用户将无法在文本字段中访问或使用它们。emoji_set- 选择你偏好的表情符号风格。不同的表情符号集可以为站点上显示的表情符号提供独特的外观。max_emojis_in_title- 主题标题中允许的最大表情符号数量(默认:1)。如果设置的值为零,则禁止在主题标题中使用任何表情符号。enable_emoji_shortcuts- 常见笑脸文本如:):p:(将被转换为表情符号。emoji_autocomplete_min_chars- 触发自动完成表情符号弹出窗口所需的最小字符数(默认:0)。enable_inline_emoji_translation- 启用内联表情符号的翻译(前面没有任何空格或标点符号)。emoji_deny_list- 这些表情符号将不可在菜单或快捷代码中使用。emoji_picker_pinned_groups- 这些表情符号组被固定到表情符号选择器的顶部。external_emoji_url- 表情符号图片的外部服务 URL。留空以使用默认设置。discourse_reactions_enabled_reactions- 定义已启用反应的列表,此处允许任何表情符号。默认反应:+1、laughing、open_mouth、clap、confetti_ball 和 hugs。discourse_reactions_excluded_from_like- 不计为赞的反应。不在该列表上的任何反应都将计为赞,用于徽章、报告和其他用途。discourse_reactions_allow_any_emoji- 如果启用此选项,将添加一个按钮,允许用户在反应选择器中选择任何表情符号。成员将被允许选择任何表情符号,包括自定义表情符号,作为反应。要限制可用的反应,请使用emoji_deny_list站点设置。
调整自定义表情符号大小
默认情况下,所有表情符号都通过 CSS 调整为 20x20,但可以通过自定义 CSS 覆盖此设置。为了在帖子中保持正确的纵横比和原始大小,请添加以下 CSS:
/* 使表情符号恢复正常大小(不强制为方形) */
div.topic-post img.emoji[src*="uploads"],
div.d-editor-preview img.emoji[src*="uploads"],
div.emoji-modal img.emoji[src*="uploads"],
div.d-editor-textarea-wrapper img.emoji[src*="uploads"],
div.title-wrapper img.emoji[src*="uploads"],
td.main-link img.emoji[src*="uploads"] {
width: auto;
height: auto;
}
要自定义特定表情符号的大小,请使用:
img.emoji[title=":youremoji:"] {
height: XXpx;
width: YYpx;
}
调整聊天消息和聊天中用户状态的表情符号大小:
div.chat-message-text img.emoji[src*="uploads"],
span.user-status-message img.emoji[src*="uploads"] {
width: auto;
height: auto;
}











