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

: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 可将其关闭。
选项
| 选项 | 默认值 | 作用 |
|---|---|---|
emojiAutocompleteEnabled | true | 同时开启或关闭转换和列表。 |
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)。 - 该插件可以单独使用,不需要表情选择器。选择器用于浏览;自动补全适合知道名称的用户。