@discord/markdown-wasm

中文文档
0.15.0发布于 2026/11/05MITTypeScriptES Module近 30 天下载 34.4万

解析 Discord Markdown 的 WASM 模块

中文使用文档
文档目录5 节
  1. 先决条件
  2. 构建
  3. 使用量
  4. 初始化
  5. 失去的树

@ discord/ markdown- wasm

先决条件

构建

pnpm build

使用量

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

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

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

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

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

初始化

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

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

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

await init();

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

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

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

initSync(wasmModule);

在两次通话之前分析.

失去的树

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

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 共发布 27 个版本,首次发布于 2025/05/12;过去 12 个月发布了 17 个版本。

版本发布日期距今
0.15.0latest2026/11/057 天前
0.14.02026/10/2716 天前
0.13.02026/10/2419 天前
0.12.02026/10/1627 天前
0.11.02026/10/1429 天前
0.10.02026/10/071 个月前

关于 @discord/markdown-wasm 的常见问题

@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 和提交记录判断。