# @acdvorak/myst-to-docx 中文文档

规范地址：https://npmcn.com/package/%40acdvorak/myst-to-docx/

版本：1\.0\.14
npm 元数据更新时间：2024-11-13T16:16:10.575Z
中文译文更新时间：2026-11-06T01:08:43.795Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40acdvorak/myst-to-docx
原文对照：https://npmcn.com/package/%40acdvorak/myst-to-docx/?lang=original
项目主页：https://github.com/acdvorak/mystmd/tree/feat/docx-upgrade
源码仓库：https://github.com/acdvorak/mystmd

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

- 包体积（解压后）：51.2 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：7 个
- 首次发布：2024-11-13T05:12:04.141Z
- 最新版本发布：2024-11-13T16:16:10.373Z
- 近 30 天下载量：7424（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

从 MyST Markdown 文档导出到 Microsoft Word (\*.docx)

## 安装

```sh
npm install @acdvorak/myst-to-docx
```

也可以使用：`pnpm add @acdvorak/myst-to-docx`、`yarn add @acdvorak/myst-to-docx`、`bun add @acdvorak/myst-to-docx`

## README

# `myst-to-docx`

导出 MyST 文档到 Microsoft Word 文件, 使用 [docx 文档](https://docx.js.org/)。 。 。 .

## 概览

`myst-to-docx` 有一个 `DocxSerializer` 对象,您在行走 MyST 文档时将其写入。 是一个光线包裹 [https://docx.js.org/ (中文(简体) )](https://docx.js.org/),它实际上负责导出. `myst-to-docx` 只写( 即可以导出到, 但无法读取) `*.docx`),并覆盖了所有标准 MyST 节点(见下文).

`myst-to-docx` 可用于浏览器或节点。 此库目前仅依赖 `docx`, (中文(简体) ), `myst-frontmatter` 财务报告和审定财务报表 `buffer-image-size` - 序列处理器可以外部编辑(见 `Extended Usage` 页:1.

AST应该通过 `myst-transforms` 以确保列出所有节点.

## 浏览器中的基本用途

工具 `fetchImagesAsBuffers` 将 AST 移动并下载图像到 docx 使用的缓冲器中,它也会计算出对象的大小,并将对象带回 `getImageBuffer` 财务报告和审定财务报表 `getImageDimensions`,这些选项需要传递给选项。 如果您的图像更为复杂(例如它们是人鱼图,或Jupyter输出),您需要做更复杂的预处理来创建这两个函数.

A 类 `Blob` 返回,可以下载客户端.

```typescript
import { unified } from 'unified';
import { mystToDocx, fetchImagesAsBuffers, DocxResult } from 'myst-to-docx';

const opts = await fetchImagesAsBuffers(tree);
const file = unified().use(mystToDocx, opts).stringify(tree);
const blob = await (file.result as DocxResult);
```

## 节点的基本使用

在节点中,图像维度是使用只使用节点包来发现的,不需要提供. 节点转换的结果是 `Buffer` 作为 `file.result`,可以保存到磁盘中.

```typescript
import { unified } from 'unified';
import { mystToDocx, DocxResult } from 'myst-to-docx';

const file = unified()
  .use(mystToDocx, {
    getImageBuffer(url) {
      return fs.readFileSync(url).buffer;
    };
  })
  .stringify(tree);
const buffer = await (file.result as DocxResult);
```

## 扩展用途

而不是使用 `defaultDocxSerializer` 您可以覆盖或提供 cumosome 序列器.

```ts
import { DocxSerializer, defaultNodes, defaultMarks } from 'myst-to-docx';

const nodeSerializer = {
  ...defaultNodes,
  my_paragraph(state, node) {
    state.renderInline(node);
    state.closeBlock(node);
  },
};

export const myDocxSerializer = new DocxSerializer(nodeSerializer, defaultMarks);
```

这个 `state` 这是 `DocxSerializerState` 并具有与 `docx`。 。 。 .

## 支持的块节点

-   文本
-   链接
-   段 次 页 次
-   标题(职等)
    -   包括标题编号
-   块引用
-   代码
    -   TODO: 不支持样式
-   主题中断
-   换行
-   列表
-   列表 项目
-   图像
-   数学
    -   包括编号
-   内置线性Math
-   交叉参照
-   缩略语
-   块
-   定义 列表
-   定义
-   定义 说明
-   集装箱
-   标题
-   标题
-   图表

## 支持的样式节点

-   重点
-   强
-   内置代码
-   下标
-   上标
-   删除( 切通)
-   下划线
-   小盖

## 资源

-   [docx 文档](https://docx.js.org/)
-   [神秘谱](https://github.com/jupyter-book/myst-spec)

## 常见问题

### @acdvorak/myst-to-docx 是什么？

从 MyST Markdown 文档导出到 Microsoft Word \(\*\.docx\)

### 如何安装 @acdvorak/myst-to-docx？

在项目目录运行 npm install @acdvorak/myst-to-docx，或使用 pnpm add / yarn add / bun add。

### @acdvorak/myst-to-docx 支持 TypeScript 吗？

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

### @acdvorak/myst-to-docx 支持 ESM 还是 CommonJS？

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

### @acdvorak/myst-to-docx 可以商用吗？

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

### @acdvorak/myst-to-docx 的下载量有多少？

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

### @acdvorak/myst-to-docx 还在维护吗？

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

