open-index/open-npm huggingface dataset:
npm package: @polyv/emotion-sdk
Description: Emotion SDK for Polyv applications
Author: Polyv frontend team
Latest version: 3.1.0

# 保利威表情 SDK

## 安装

对于支持使用 npm 的项目，可直接安装到该项目下：

``` bash
npm install @polyv/emotion-sdk
```

对于不支持使用 npm 的项目，可以在安装后，拷贝 `node_modules/@polyv/emotion-sdk/lib/polyv-emotion.umd.js` 到目标项目使用，占用的全局变量为 `PolyvEmotionSDK`。

## 调用

表情 SDK 提供了一个表情解析器，该解析器必须在表情数据就绪时才能调用。

```javascript
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
  // ...
});
```

### 表情解析器

### parse(content, mode)

把指定内容中的表情占位符替换为表情图片。

```javascript
import { emotionsReady, EmotionParsingMode } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
  // HTML 模式下会把表情占位符替换为 img 元素
  console.log(parser.parse('[微笑][撇嘴]', EmotionParsingMode.HTML));

  // 弹幕模式下会把表情占位符替换为“[[图片地址]]”，主要用于传入到保利威播放器展示弹幕
  console.log(parser.parse('[微笑][撇嘴]', EmotionParsingMode.DANMAKU));
});
```

### removeAll()

移除指定内容中的所有表情占位符。注意，如果表情占位符内的是一个不存在的表情，则不会被移除。

```javascript
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
  parser.removeAll('[微笑][撇嘴]'); // ''
  parser.removeAll('[没有这个表情]'); // '[没有这个表情]'
});
```

### genDOMList()

生成包含表情列表的 HTML 元素。

``` javascript
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
  document.body.appendChild(parser.genDOMList());
  document.body.appendChild(parser.genDOMList(64)); // 可以指定表情尺寸

  // 可以指定表情尺寸和样式类
  document.body.appendChild(
    parser.genDOMList({
      size: 64,
      cssClass: {
        list: 'my-menu',
        item: 'my-menu-item',
        inner: 'my-menu-item-inner'
      }
    })
  );
});
```

### eachEmotion(cb)

用于遍历表情数据。

```javascript
import { emotionsReady } from '@polyv/emotion-sdk';
emotionsReady((parser) => {
  parser.eachEmotion((item) => {
    console.dir(item);
  });
});
```