# @discordapp/twemoji 中文文档

规范地址：https://npmcn.com/package/%40discordapp/twemoji/

版本：17\.0\.3
npm 元数据更新时间：2026-11-09T20:11:50.870Z
中文译文更新时间：2026-11-12T11:06:08.778Z
软件包许可：MIT AND CC-BY-4\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40discordapp/twemoji
原文对照：https://npmcn.com/package/%40discordapp/twemoji/?lang=original
项目主页：https://github.com/discord/twemoji
源码仓库：https://github.com/discord/twemoji

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.3 MB，4018 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2019-11-05T19:18:51.324Z
- 最新版本发布：2026-11-09T20:11:50.681Z
- 近 30 天下载量：572609（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 1 个）

## 中文简介

一个基于Unicode标准的方法,在所有平台上实施emoji.

## 安装

```sh
npm install @discordapp/twemoji
```

也可以使用：`pnpm add @discordapp/twemoji`、`yarn add @discordapp/twemoji`、`bun add @discordapp/twemoji`

## README

# Twitter Emoji (特维莫吉语)

一个提供标准 Unicode 的简单库 [爱莫吉](http://en.wikipedia.org/wiki/Emoji) 在所有平台上提供支持.

**Twemoji v17.0 (英语)** 遵守 [Unicode 17.0 spec](https://unicode.org/versions/Unicode17.0.0/) 并支持 [Emoji 17.0 spec](https://www.unicode.org/reports/tr51/tr51-29.html)。 。 。 . _我们不支持定制的emoji._

Twemoji 库为所有推荐用于一般交换的 Unicode 定义的 emoji 提供支持.

## 使用量

### 通过国家预防机制安装

运行您已启动的项目的以下内容 :

```bash
npm install @twemoji/api
```

### CDN 支持

默认 CDN 支持通过 [日记](https://www.jsdelivr.com/)。 。 。 .

在下面 `<head>` hTML 文档的标记 :

```html
<script src="https://cdn.jsdelivr.net/npm/@twemoji/api@latest/dist/twemoji.min.js" crossorigin="anonymous"></script>
```

这保证了您将永远使用最新版本的图书馆.

如果相反,您希望明确加入最新版本,您可以添加以下标记:

```html
<script src="https://cdn.jsdelivr.net/npm/@twemoji/api@17.0.3/dist/twemoji.min.js" integrity="sha384-Y5xukbGJwykbHHkTbLJykYLcBPFxrwipTbEh0puxhkz9CZ90raTPGe2Ks4vCxsYU" crossorigin="anonymous"></script>
```

### 下载

如果您想要下载特定版本,请查看 `gh-pages` 分公司,你将在那里找到我们最新版本和旧版本的已建资产.

## API 密码

下面是所有暴露在 `twemoji` 名称空间.

### twemoji.parse (.) V1 (英语)

这是主解析工具, 每解析类型有3个超载 .

虽然这个工具支持两种解析,但我们建议你使用 [DOM 解析](https://github.com/jdecked/twemoji#dom-parsing),下文解释。 每类解析都接受回调以生成图像源或带有解析信息选项对象.

第二种解析是字符串解析,在遗留文献中解释 [这里](https://npmcn.com/package/%40discordapp/twemoji/LEGACY.md#string-parsing)。这是不推荐的,因为这种方法不会使字符串消毒或以其他方式阻止恶意代码被执行;这种消毒已经超出了范围.

#### DOM 解析

如果第一个论点是 `twemoji.parse` 是一个 `HTMLElement`,生成的图像标记将替换 emoji 即 **内部 `#text` 只有节点** 完全避免使用 `innerHTML`。 。 。 .

如果安全是主要关切,这种解析可被视为最安全的选择,但因DOM操作不可避免地受到轻微的性能处罚 _费用_。 。 。 .

```js
var div = document.createElement('div');
div.textContent = 'I \u2764\uFE0F emoji!';
document.body.appendChild(div);

twemoji.parse(document.body);

var img = div.querySelector('img');

// note the div is preserved
img.parentNode === div; // true

img.src;        // https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/72x72/2764.png
img.alt;        // \u2764\uFE0F
img.className;  // emoji
img.draggable;  // false

```

所有其他超载情况 `string` dOM 解析方法完全相同.

### 作为参数的对象

以下是可选对象接受的属性列表,可以传递给 `parse` 函数.

```js
  {
    callback: Function,   // default the common replacer
    attributes: Function, // default returns {}
    base: string,         // default jsDelivr
    ext: string,          // default ".png"
    className: string,    // default "emoji"
    size: string|number,  // default "72x72"
    folder: string        // in case it's specified
                          // it replaces .size info, if any
  }
```

#### 回调

用于生成图像的函数 `src`(s) (中文(简体) ).

默认它是一个类似以下函数:

```js
function imageSourceGenerator(icon, options) {
  return ''.concat(
    options.base, // by default jsDelivr
    options.size, // by default "72x72" string
    '/',
    icon,         // the found emoji as code point
    options.ext   // by default ".png"
  );
}
```

#### 基础

默认url 与 `twemoji.base`,因此,如果修改了前者,它将反映为所有解析字符串或节点的默认值.

#### 电话分机

默认图像扩展名与 `twemoji.ext` 这是 `".png"`。 。 。 .

如果您修改了前者, 它会反映为所有解析字符串或节点的默认值 .

#### 类Name

默认 `class` 每个生成的图像是 `emoji`。可以通过该属性指定不同的属性.

##### 大小

默认资产大小与 `twemoji.size` 这是 `"72x72"`。 。 。 .

如果您修改了前者, 它会反映为所有解析字符串或节点的默认值 .

#### 文件夹

如果你不想指定图像的大小。 可以选择一个文件夹,例如SVG emoji.

```js
twemoji.parse(genericNode, {
  folder: 'svg',
  ext: '.svg'
});
```

这将生成 urls 这样 `https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/2764.svg` 而不是使用基于特定大小的图像.

## 公用事业

基本公用设施 / 帮助将代码转换为 JavaScript 代词,反之亦然.

### twemoji.convert. from CodePoint () (中文(简体) )

对于给定的HEX编码点,返回UTF-16代对.

```js
twemoji.convert.fromCodePoint('1f1e8');
 // "\ud83c\udde8"
```

### twemoji.convert.to CodePoint () (中文(简体) )

对于给定的UTF-16代位对子,返回等同的HEX编码点.

```js
 twemoji.convert.toCodePoint('\ud83c\udde8\ud83c\uddf3');
 // "1f1e8-1f1f3"

 twemoji.convert.toCodePoint('\ud83c\udde8\ud83c\uddf3', '~');
 // "1f1e8~1f1f3"
```

## 提示

### 内嵌样式

如果您想根据周围的文本来大小化emoji,可以在您的样式表上添加以下 CSS :

```css
img.emoji {
   height: 1em;
   width: 1em;
   margin: 0 .05em 0 .1em;
   vertical-align: -0.1em;
}
```

这会确保Emoji从.. `font-size` 显示的文本。 它还在每个emoji前后增加一点空间,并拉上一点来更好地进行光学对接.

### UTF-8 字符集

要正确支持emoji,文档字符集必须设置为UTF-8. 这可以通过在文档中包含以下元标记来实现 `<head>`

```html
<meta charset="utf-8">
```

### 排除字符( V1)

要排除某些字符被 twemoji.js所取代,请使用回调来调用 twemoji.parse(),为特定的unicode图标返回假. 例如:

```js
twemoji.parse(document.body, {
    callback: function(icon, options, variant) {
        switch ( icon ) {
            case 'a9':      // © copyright
            case 'ae':      // ® registered trademark
            case '2122':    // ™ trademark
                return false;
        }
        return ''.concat(options.base, options.size, '/', icon, options.ext);
    }
});
```

## 遗留的 API (V1)

如果你还在使用我们的V1 API, 你可以读我们的遗产文件 [这里](https://npmcn.com/package/%40discordapp/twemoji/LEGACY.md)。 。 。 .

## 捐款

提供的文件可见 [这里](https://npmcn.com/package/%40discordapp/twemoji/CONTRIBUTING.md)。 。 。 .

## 分配要求

作为一个开放源码项目,在我们看来,从法律、实际和激励的角度来看,归属是至关重要的。 图片由CC-BY 4.0授权使用 [最佳归因做法](https://wiki.creativecommons.org/Best_practices_for_attribution)。 。 。 .

然而,我们认为指南有点繁琐,作为一个项目,将接受在项目README或网站“About”部分或页脚中提及。 在移动应用程序中,一个常见位置将位于Sets/About部分(例如,见移动Twitter应用程序设置->About->Legal部分)。 我们认为在HTML/JS来源中提及也足够.

## 社区项目

-   [Twemoji 骗局](https://twemoji-cheatsheet.vercel.app/) 以 [@ShahriarKh (英语)](https://github.com/ShahriarKh):一个用于探索,复制和下载emojis的易用欺骗表!
-   [翠摩地 厉害](https://github.com/SebastianAigner/twemoji-amazing) 以 [@ 塞巴斯蒂安·艾格纳](https://github.com/SebastianAigner): 使用 CSS 类( 如 [字体帅呆了](http://fortawesome.github.io/Font-Awesome/)) (中文(简体) ).
-   [特维莫吉·鲁比](https://github.com/jollygoodcode/twemoji) 以 [@ Jolly好代码](https://twitter.com/jollygoodcode):在"鲁比"中使用"特"(Twemoji).
-   [特莫吉乌蒂尔斯](https://github.com/gustavwilliam/twemoji-utils) 以 [@gustavwilliam (英语)](https://github.com/gustavwilliam): 用于查找和下载Twemoji源文件的公用事业.
-   [笔名的Twemoji](https://github.com/nathanielw/Twemoji-for-Pencil) 以 [@Nathanielnw (英语)](https://twitter.com/nathanielnw):在"笔会"中使用"特"(Twemoji).
-   [FrwTwemoji - 点网中的Twemoji](http://github.frenchw.net/FrwTwemoji/) 以 [@ 法语W](https://twitter.com/frenchw):在任何多特网项目(C#,asp.net.)中使用Twemoji.
-   [Emojia some - 黄色的特维莫吉](https://github.com/datenstrom/yellow-extensions/tree/master/source/emojiawesome) 以 [@ datenstrom (英语)](https://github.com/datenstrom/):在您的网站上使用Twemoji.
-   [推特的Emoji小组](https://github.com/danbovey/EmojiPanel) 以 [@danielbovey (英语)](https://twitter.com/danielbovey/status/749580050274582528)在推特上插入Twemoji.
-   [Twitter 彩色 Emoji 字体](https://github.com/eosrei/twemoji-color-font) 以 [@bdelickson (英语)](https://twitter.com/bderickson): 在Linux & OS X上使用Twemoji作为您的系统默认字体.
-   [爱莫吉卡](https://github.com/xoudini/emojica) 以 [@xoudini (英语)](https://twitter.com/xoudini): 一个iOS框架允许您用Twemoji来替换所有字符串中的标准的emoji.
-   [维莫吉](https://github.com/phpmonkeys-de/gwt-twemoji) 以 [@nbartels (英语)](https://github.com/nbartels): 在 GWT 中使用 Twemoji
-   [JavaFXEmojiText 花样](https://github.com/pavlobu/emoji-text-flow-javafx) 以 [@pavlobu (英语)](https://github.com/pavlobu):一个JavaFX库,允许您将扩展的EmojiTextFlow中的所有标准emoji替换为Twemoji.
-   [Vue Twemoji 拾取器](https://github.com/kevinfaguiar/vue-twemoji-picker) 以 [@kevinfaguiar (法语)](https://github.com/kevinfaguiar): 为Vue提供快插件-n- play Twemoji Picker(+Twemoji渲染的文本域).
-   [EmojiOn Roku (英语)](https://github.com/KasperGam/EmojiOnRoku) 以 [@ KasperGam (英语)](https://github.com/KasperGam):在"禄"上用"特活地"(Twemoji)!!
-   [LaTeX 特维莫吉](https://gitlab.com/rossel.jost/latex-twemojis) 以 [@rossel.jost (英语)](https://gitlab.com/rossel.jost):在"LaTeX"中使用特维莫吉.
-   [Ưμ㼯A](https://github.com/Astrotomic/php-twemoji) 以 [@ 天文学](https://github.com/Astrotomic): 在您的 PHP 网站项目中使用 twemoji, 用 twemoji urls 替换标准 Emoji .
-   [自定义 Twemoji API](https://github.com/custom-twemoji/custom-twemoji-api) 以 [@blakegearin (英语)](https://github.com/blakegearin): API用于取取Twemoji相貌并创建Twemoji相貌乳头.

## 提交者和贡献者

-   Justine De Caires(前拖车)
-   杰森·索福尼亚(前特维尔特人)
-   布莱恩·哈格蒂(前特瓦特人)
-   内森·唐斯(前推特)
-   汤姆·武特克(前特派员)
-   安德里亚·吉阿迈尔奇(前特派员)
-   约恩·阿斯穆森(英语:Joen Asmussen (WordPress))
-   马库斯·卡兹米尔扎克(记者)
-   凯文·VQ水坝(前Discord)
-   吉卡·塔姆(Discord)
-   本·奥尔森(Discord)

这个项目的目标是简单地为每个人提供情感。 我们当然欢迎改进和修正,但由于该项目的简单性质,我们可能不会合并社区提出的每一项拉动请求.

缴款规则载于 [`CONTRIBUTING.md`](https://npmcn.com/package/%40discordapp/twemoji/CONTRIBUTING.md) 文档.

谢谢大家 [捐助者](https://github.com/jdecked/twemoji/graphs/contributors)。 。 。 .

## 许可证

见 [自由主义](https://npmcn.com/package/%40discordapp/twemoji/LICENSE) 财务报告和审定财务报表 [自由-巨头](https://npmcn.com/package/%40discordapp/twemoji/LICENSE-GRAPHICS) 完整许可证文本的文件.

麻省理工学院许可的代码: [http://opensource.org/licenses/MIT 互联网档案馆的存檔,存档日期2013-12-02](http://opensource.org/licenses/MIT)

根据 CC-BY 4.0 许可的图形 : [https://creativecommons.org/licenses/by/ 4.0/ (英语)](https://creativecommons.org/licenses/by/4.0/)

## 常见问题

### @discordapp/twemoji 是什么？

一个基于Unicode标准的方法,在所有平台上实施emoji\.

### 如何安装 @discordapp/twemoji？

在项目目录运行 npm install @discordapp/twemoji，或使用 pnpm add / yarn add / bun add。

### @discordapp/twemoji 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @discordapp/twemoji 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @discordapp/twemoji 可以商用吗？

@discordapp/twemoji 使用 MIT AND CC-BY-4\.0 许可。声明的许可为 MIT AND CC-BY-4\.0，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @discordapp/twemoji 的下载量有多少？

根据 npm 官方下载统计，@discordapp/twemoji 在 2026/10/13 – 2026/11/11 这 30 天内被下载 572,609 次，日均约 19,087 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @discordapp/twemoji 还在维护吗？

最新版本 17\.0\.3 发布于 2026/11/10（2 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 1 个；首次发布于 2019/11/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

