# @elythia-network/mfm 中文文档

规范地址：https://npmcn.com/package/%40elythia-network/mfm/

版本：0\.1\.0
npm 元数据更新时间：2026-10-12T19:24:53.374Z
中文译文更新时间：2026-11-14T03:42:29.558Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40elythia-network/mfm
原文对照：https://npmcn.com/package/%40elythia-network/mfm/?lang=original
项目主页：https://github.com/Elythia-Network/mfm#readme
源码仓库：https://github.com/Elythia-Network/mfm

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

- 包体积（解压后）：159 kB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：0 个
- 首次发布：2026-10-12T19:23:57.376Z
- 最新版本发布：2026-10-12T19:24:52.960Z
- 近 30 天下载量：2368（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

MFM( Misskey Flavored Markdown) 用 mfm- js 0.2.6. 0的 API 解析器, 在线性时间和内存中

## 安装

```sh
npm install @elythia-network/mfm
```

也可以使用：`pnpm add @elythia-network/mfm`、`yarn add @elythia-network/mfm`、`bun add @elythia-network/mfm`

## README

# @elythia-网络/mfm

MFM( Misskey Flavored Markdown) 的解析器,其 API 为 [缩写:mfm-js](https://github.com/misskey-dev/mfm.js) 6.2.6.: 相同职能, 节点类型和树,以时间和记忆线性表示输入的长度. 它是 Go 解析器的 TypeScript 端口,位于 [同一仓库](https://github.com/Elythia-Network/mfm); 见 README 那里有设计,工作与内存限制 和共享的固定装置.

```sh
npm install @elythia-network/mfm
```

```ts
import * as mfm from '@elythia-network/mfm';

const nodes = mfm.parse('**Hello** :wave: #mfm @someone@example.com');
const simple = mfm.parseSimple('Name :custom_emoji:'); // for user names and the like
const hashtags = mfm.extract(nodes, (n) => n.type === 'hashtag');
```

该软件包是一个没有依赖性的ES模块. 它需要节点20或 后期或支持 ES2022 的浏览器; 在 Node.js 版本上可以 `require()` ES模块(20.19和22.12或以后), `require` 还行.

## 替换 mfm-js

每出口 mfm-js 0.26.0 以相同名称出口 类型 : `parse(input, { nestLimit })`, (中文(简体) ), `parseSimple`, (中文(简体) ), `toString`, (中文(简体) ), `inspect`, (中文(简体) ), `extract`, (中文(简体) ), `isMfmBlock`,节点类型(`MfmNode`, (中文(简体) ), `MfmBlock`, (中文(简体) ), `MfmInline`, (中文(简体) ), `MfmSimpleNode`, (中文(简体) ), `MfmText`,还有 `NodeType`和节点构造器 (单位:千美元)`TEXT`, (中文(简体) ), `BOLD`, (中文(简体) ), `N_URL`(中文(简体) ). 替换导入即可 :

```diff
-import * as mfm from 'mfm-js';
+import * as mfm from '@elythia-network/mfm';
```

树等于mfm-js's,包括节点对象的关键顺序, 用于每个共用固定装置和随机输入的 mfm-js 0.26.0在测试中. 差别:

1.  **巢限盖.** A 类 `nestLimit` 500人以上被降为500人。 尼斯廷语是 通过再现读取:1,000个关卡在代码之前需要约800 KB堆栈 被优化,接近 V8 的默认值为 984 KB,因此上限保持了差值. Go 解析器的盖子为1000.
    
2.  **工作与记忆限制.** 最多只打个电话 `2^21 + 32 × length` 工作单位和最多 `max(16 MiB, 64 × length)` 备忘字节 存储,其长度在UTF-16代码单元中。 等两个都用光了, 如寄存器所描述的那样,其余的输入被读作文本 读取。 没有输入共享固定装置,也没有输入3 000个特征 测试中的压力输入达到极限.
    
    备忘存储器是一个名义上的计数: 它被充值到大小 Go 解析器的结构(使 ASCII 输入在 与Go中相同),在JavaScript堆积中未被测量. 堆积 剖面需求较大:在22号节点上测量为最小 `--max-old-space-size` 我们最糟糕的形状 尝试( 大量深层引号块) 需要约 330 MB 用于 1 048 576个字符和大约1.3个GB,用于4 194 304个字符,大约 5倍于计算数量,而所需3 000个性质输入 总共约11 MB(比纯文本分析多出约4 MB). 解析未信任输入的呼叫者应限制其长度( Misskey 限制) 3 000个字符).
    

字符串像 mfm-js 一样处理: 位置是 UTF-16 代码单位, 一个孤独 代位被保留为角色. `nestLimit` 读取方式 mfm -js 比较一下: `undefined` 财务报告和审定财务报表 `null` 给20,一个分数是圆的, `NaN` 而负值表现为 0.

## 许可证

麻省理工学院. emoji模式来源于@misskey-dev/emoji-data,以及API和P 树跟随 mfm-js; 请见软件包中的 Third PARTY NOTICES.

## 常见问题

### @elythia-network/mfm 是什么？

MFM\( Misskey Flavored Markdown\) 用 mfm- js 0\.2\.6\. 0的 API 解析器, 在线性时间和内存中

### 如何安装 @elythia-network/mfm？

在项目目录运行 npm install @elythia-network/mfm，或使用 pnpm add / yarn add / bun add。

### @elythia-network/mfm 支持 TypeScript 吗？

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

### @elythia-network/mfm 支持 ESM 还是 CommonJS？

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

### @elythia-network/mfm 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @elythia-network/mfm 可以商用吗？

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

### @elythia-network/mfm 的下载量有多少？

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

### @elythia-network/mfm 还在维护吗？

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

