# @discord/markdown-wasm 中文文档

规范地址：https://npmcn.com/package/%40discord/markdown-wasm/

版本：0\.15\.0
npm 元数据更新时间：2026-11-04T16:46:24.224Z
中文译文更新时间：2026-11-12T11:04:43.142Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40discord/markdown-wasm
原文对照：https://npmcn.com/package/%40discord/markdown-wasm/?lang=original

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

- 包体积（解压后）：1.3 MB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-05-12T15:47:05.886Z
- 最新版本发布：2026-11-04T16:46:23.909Z
- 近 30 天下载量：343500（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 17 个）

## 中文简介

解析 Discord Markdown 的 WASM 模块

## 安装

```sh
npm install @discord/markdown-wasm
```

也可以使用：`pnpm add @discord/markdown-wasm`、`yarn add @discord/markdown-wasm`、`bun add @discord/markdown-wasm`

## README

# @ discord/ markdown- wasm

## 先决条件

-   [`wasm-pack`](https://rustwasm.github.io/wasm-pack/)

## 构建

```
pnpm build
```

## 使用量

```js
import { parse } from '@discord/markdown-wasm';

const ast = parse('Hello world!');
```

`parse` 选择 `flags` 第二,将语法选为 OR `Syntax` 位元,该软件包也导出。 默认情况下,每个语法都会分析 `0`数字 :

```js
import { Syntax, parse } from '@discord/markdown-wasm';

const noMentions = parse('@everyone **hi**', Syntax.ALL & ~Syntax.MENTIONS);
```

### 初始化

软件包没有顶级等待,所以导入它就永远不会使模块图形变换为Aync——它可以是 `require()`d,并捆绑不支持顶级等待的目标.

代价是,在第一次剖析之前,必须先将原地进行即时分析。 节点自己在 首先使用、读取并同步编译文件。 没有别的地方可以: 字节只到 浏览器拒绝在主线程上同步编译 4KB 以上的缓冲 无论如何。 所以其他任何地方,在启动时,它一次:

```js
import { init, parse } from '@discord/markdown-wasm';

await init();

const ast = parse('Hello world!'); // and everything downstream stays sync
```

如果您的捆绑者或主机已经将原地交给您, 请跳过获取器 `initSync`通过 a `WebAssembly.Module`,而不是字节 – 编译字节是4KB盖适用于:

```js
import { initSync, parse } from '@discord/markdown-wasm';

initSync(wasmModule);
```

在两次通话之前分析.

### 失去的树

`parseLossless` 返回丰富文本的树:节点 降标意味着什么 象征着内容的每个字符都按顺序排列 分界线,出逃,标记和行尾. 加入标志 `text` 给回内容 没错 每个节点和标志都有一个 `span`,在 UTF-16 代码单元中,它会索引字符串 直接 :

```js
import { parseLossless } from '@discord/markdown-wasm';

const content = '**hi** 🦶';
const tree = parseLossless(content);
// tree.children[0] is the paragraph; its first child, the bold, spans `**hi**`
const { start, end } = tree.children[0].children[0].span;
content.slice(start, end); // '**hi**'
```

这需要 `flags` 作为 `parse` 已经 这些类型是: `LosslessNode` 还有朋友 `@discord/markdown-types`。 。 。 .

## 常见问题

### @discord/markdown-wasm 是什么？

解析 Discord Markdown 的 WASM 模块

### 如何安装 @discord/markdown-wasm？

在项目目录运行 npm install @discord/markdown-wasm，或使用 pnpm add / yarn add / bun add。

### @discord/markdown-wasm 支持 TypeScript 吗？

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

### @discord/markdown-wasm 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @discord/markdown-wasm 可以商用吗？

@discord/markdown-wasm 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @discord/markdown-wasm 的下载量有多少？

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

### @discord/markdown-wasm 还在维护吗？

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

