← 全部文档

表情自动补全

像聊天应用那样输入表情::smile: 在输入结束冒号的那一刻就会变成 😄,而冒号后跟几个字母会在光标下方打开一个简短的匹配表情列表。它没有按钮;通过键盘使用。

编辑器中的文本为 Great work on the release :ta,光标下方的列表显示 tada、taco、star_struck、star、star2、rotating_light、cocktail 和 guitar,每项都带有对应的表情
输入 :ta 之后。以这些字母开头的名称排在前面,然后是包含这些字母的名称。按 Enter 插入了 🎉。

启用

该功能由 emojiautocomplete.js 插件提供(也包含在 plugins/all_plugins.js 中)。加载它即可:它默认开启,不需要工具栏项。

<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css" />
<script src="/richtexteditor/rte.js"></script>
<script src="/richtexteditor/plugins/emojiautocomplete.js"></script>

<div id="div_editor1"><p>Great work on the release </p></div>
<script>
var editor1 = new RichTextEditor("#div_editor1", {
  toolbar: "custom",
  toolbar_custom: "{bold,italic,underline}|{insertemoji}|{undo,redo}"
});
</script>

由于 all_plugins.js 包含了它,每个加载 all_plugins.js 的页面都开启了表情自动补全。设置 emojiAutocompleteEnabled: false 可将其关闭。

选项

选项默认值作用
emojiAutocompleteEnabledtrue同时开启或关闭转换和列表。
emojiShortcodes一个包含 286 个名称的内置映射(smile、+1、tada、rocket、heart ……)插件认识的名称,形式为 { name: "emoji" }。设置它会替换内置映射。
text_emoji_suggest"Emoji suggestions"列表的可访问名称。

要保留内置名称并添加您自己的名称,请先复制默认映射:

var editor1 = new RichTextEditor("#div_editor1", {
  emojiShortcodes: Object.assign({}, RTE_DefaultConfig.emojiShortcodes, { shipit: "\u{1F6A2}", lgtm: "\u{1F44D}" })
});

使用这个编辑器时,:shipit: 得到 🚢,:smile: 仍然得到 😄,:lg 列出了 :lgtm:。如果只设置 emojiShortcodes: { shipit: "\u{1F6A2}" },:smile: 会保持输入的原样。

使用方法

  • 完整代码。输入 :name:。输入结束冒号时,如果该名称在映射中,代码会被替换为表情。未知的名称(例如 :nosuchcode:)保留为文本。
  • 列表。输入 : 以及至少一个字母、数字、_、+ 或 -。最多显示八个匹配项;每个表情只显示一次,显示在其第一个匹配的名称下。用 ArrowDown 和 ArrowUp 移动,按 Enter 或 Tab 插入,按 Escape 关闭列表,点击也可插入。
  • 撤销。转换之后立即按 Ctrl+Z(Mac 上为 Cmd+Z),会恢复输入的代码::rocket: → 🚀 → :rocket:。如果先按了其他任何键,Ctrl+Z 就是编辑器的普通撤销。
  • 冒号必须位于单词开头:它必须跟在空格、标点之后或位于文本开头。release:ta 不会有任何反应;release :ta 会打开列表。这样 10:30 这样的时间和 URL 就不会受影响。
  • 在 <code> 或 <pre> 内部不会进行任何转换。

注意事项

  • 结果就是文本中的表情字符,没有其他任何内容。输入 :ta 并按 Enter,再输入 and :rocket: 之后:
    <p>Great work on the release 🎉 and 🚀</p>
  • 名称按小写进行匹配。内置映射使用 GitHub 风格的名称;+1 和 thumbsup 都是 👍。
  • 列表以类名 rte-emoji-pop 添加到页面 body 中(位于编辑器之外),样式由 rte_theme_default.css 提供。它会跟随编辑器的深色模式(rte-dark,或者在系统设置为深色时的 rte-auto-dark)。
  • 该插件可以单独使用,不需要表情选择器。选择器用于浏览;自动补全适合知道名称的用户。

相关内容:表情选择器、配置。