配置自定义表情

:bookmark: 本指南介绍如何通过选择表情符号集、上传新表情符号、配置站点设置以及调整表情符号大小来自定义 Discourse 站点的表情符号。

:person_raising_hand: 所需用户权限:管理员

选择表情符号集

Discourse 目前支持五种表情符号集:

  • Fluent UI
  • Noto
  • OpenMoji
  • Twemoji
  • Standard (Unicode)

如需了解不同表情符号集的外观对比,可以查看 此表情符号集对比。你可以在 /admin/config/emoji/settings 配置 emoji_set 站点设置以及其他与表情符号相关的设置。

添加自定义表情符号

要添加自定义表情符号:

  1. 导航至 Admin → Appearance → Emoji(位于 /admin/config/emoji

  2. 点击 Add emoji 按钮以命名、分类并上传你的表情符号图片
    :information: 如果你有多个表情符号文件要上传,可以在文件选择器中选择最多 10 个图片文件进行批量上传。在这种情况下,图片文件名将用作表情符号名称。

批量导入自定义表情符号

你可以通过包含 emojis.csv 清单的单个 ZIP 文件导入最多 1000 个表情符号。CSV 文件必须包含以下带有标题的列:namegroupfilename

name,group,filename
emoji_a,group_name,image.png

导入过程完全依赖清单。如果文件或行缺失,将被跳过。group 字段可以留空,在这种情况下,自定义表情符号将被添加到 default 组。

要导入:

  1. 导航至 Admin → Appearance → Emoji(位于 /admin/config/emoji

  2. 点击 Import 按钮,并选择包含你表情符号的 ZIP 文件。

  3. 预览导入并确认更改。你可以在此处通过选择要保留的表情符号来解决任何冲突。如果已存在具有相同名称(但不同组/图片)的表情符号,则会发生冲突。要完成导入,点击 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_&_emotion
  • people_&_body
  • animals_&_nature
  • food_&_drink
  • travel_&_places
  • activities
  • objects
  • symbols
  • flags

表情符号设置

你可以在 /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;
}
33 个赞