@mdit/plugin-emoji
markdown-it 的表情插件。
使用
import { fullEmoji } from "@mdit/plugin-emoji";
import MarkdownIt from "markdown-it";
const mdIt = new MarkdownIt().use(fullEmoji);
mdIt.render("来自火星的问候 :satellite:");提供了几种不同的预设:
fullEmoji: 包含所有可用的表情支持lightEmoji: 包含常用表情的一个子集bareEmoji: 不包含任何默认定义,仅包含你在选项中定义的内容
同一个 markdown-it 实例只支持一个预设:重复安装(换成其它变体或传入不同选项)时,保持首次安装的规则及其定义。
语法
:表情名称:- 捷键短语,如
:),:D等 (如果启用)
选项
definitions
Record<string, string>默认值
{} (取决于预设) 重写可用的表情定义。键是表情名称,值是表情字符。
不可信输入
表情定义的值会作为原始 HTML 直接输出,因此 definitions 绝不能包含不可信的用户输入,否则必须先对值进行清理。
enabled
string[]默认值
[]如果指定,则仅渲染此列表中的表情。否则,将渲染定义中的所有表情。
shortcuts
Record<string, string | string[]>默认值
{} (取决于预设) 重写默认快捷键。键是表情名称,值是表情的快捷键短语。
空字符串或纯空白的快捷键会被忽略。
示例
来自火星的问候 📡
经典快捷键: 😃 😦
示例
来自火星的问候 :satellite:
经典快捷键: :-) :-(自定义渲染器
默认情况下,表情被渲染为相应的 Unicode 字符。但你可以根据需要更改渲染器函数。
例如,使用 twemoji:
import { fullEmoji } from "@mdit/plugin-emoji";
import MarkdownIt from "markdown-it";
import twemoji from "twemoji";
const mdIt = new MarkdownIt().use(fullEmoji);
mdIt.renderer.rules.emoji = (tokens, idx) => twemoji.parse(tokens[idx].content);你可以使用以下样式使图片高度与行高匹配:
.emoji {
height: 1.2em;
}与上游参考实现的完整对比见对比报告。