# @adobe/mdast-util-gridtables 中文文档

规范地址：https://npmcn.com/package/%40adobe/mdast-util-gridtables/

版本：4\.0\.20
npm 元数据更新时间：2026-10-03T22:40:55.721Z
中文译文更新时间：2026-11-05T18:16:48.850Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40adobe/mdast-util-gridtables
原文对照：https://npmcn.com/package/%40adobe/mdast-util-gridtables/?lang=original
项目主页：https://github.com/adobe/mdast-util-gridtables#readme
源码仓库：https://github.com/adobe/mdast-util-gridtables

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

- 包体积（解压后）：153 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2022-10-07T13:18:45.257Z
- 最新版本发布：2026-10-03T22:40:55.392Z
- 近 30 天下载量：89930（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：37（近 12 个月 6 个）

## 中文简介

MDAST 虚拟网格

## 安装

```sh
npm install @adobe/mdast-util-gridtables
```

也可以使用：`pnpm add @adobe/mdast-util-gridtables`、`yarn add @adobe/mdast-util-gridtables`、`bun add @adobe/mdast-util-gridtables`

## README

# MDAST 虚拟网格

> 将网格表序列化为mdast和/或hast的Mdast工具.

## 状态

[![codecov](https://img.shields.io/codecov/c/github/adobe/mdast-util-gridtables.svg)](https://codecov.io/gh/adobe/mdast-util-gridtables) ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/adobe/mdast-util-gridtables/main.yaml) [![GitHub license](https://img.shields.io/github/license/adobe/mdast-util-gridtables.svg)](https://github.com/adobe/mdast-util-gridtables/blob/master/LICENSE.txt) [![GitHub issues](https://img.shields.io/github/issues/adobe/mdast-util-gridtables.svg)](https://github.com/adobe/mdast-util-gridtables/issues) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

## 这是什么?

此软件包包含添加格表语法支持的扩展名 改为 [`mdast-util-from-markdown`](https://github.com/syntax-tree/mdast-util-from-markdown) 财务报告和审定财务报表 [`mdast-util-to-markdown`](https://github.com/syntax-tree/mdast-util-to-markdown)。 。 。 .

## 何时使用

这些工具都相当低级. 在多数情况下,您会想使用:`@adobe/remark-gridtables`换句话说.

合作时 `mdast-util-from-markdown`,您必须结合此软件包和 [`@adobe/micromark-extension-gridtables`](https://github.com/@adobe/micromark-extension-gridtables)。 。 。 .

此工具不处理如何将标记降为 HTML . 这是由 [`mdast-util-to-hast`](https://github.com/syntax-tree/mdast-util-to-hast)。 。 。 .

## 安装

这个软件包是 [仅限无害环境管理](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)。 。 。 . 在Node.js(12.20+,14.14+,或16.0+)中,安装与 [无](https://docs.npmjs.com/cli/install)数字 :

```sh
npm install @adobe/mdast-util-gridtables
```

## 使用量

注:由于微标记解析器的结构,无法解析单元格内容 持续。 此外,待标工具无法使其配置可供 扩展,所以我们需要将配置手动传入网格表扩展.

```js
import fs from 'node:fs/promises';
import { fromMarkdown } from 'mdast-util-from-markdown';
import { toMarkdown } from 'mdast-util-to-markdown';
import { gridTables } from '@adobe/micromark-extension-gridtables'
import { 
  gridTablesToMarkdown, 
  gridTablesFromMarkdown, 
  mdast2hastGridTablesHandler,
  TYPE_TABLE,
} from '@adobe/mdast-util-gridtables';

const doc = await fs.readFile('example.md')

// convert markdown to mdast
const options = {
  extensions: [gridTables],
  mdastExtensions: [],
};
options.mdastExtensions.push(gridTablesFromMarkdown(options));
const tree = fromMarkdown(sourceMarkdown, options);

// convert mdast to md
const outputMarkdown = toMarkdown(tree, {extensions: [gridTablesToMarkdown()]})

// convert mdast to hast
const hast = mdast2hast(mdast, {
  handlers: {
    [TYPE_TABLE]: mdast2hastGridTablesHandler(),
  },
});
```

还见一个工作 [实例](https://npmcn.com/example/index.js)。 。 。 .

## 概览

网格表是这样的:

```
+-------------------+------+
| Table Headings    | Here |
+--------+----------+------+
| Sub    | Headings | Too  |
+========+=================+
| cell   | column spanning |
| spans  +---------:+------+
| rows   |   normal | cell |
+---v----+:---------------:+
|        | cells can be    |
|        | *formatted*     |
|        | **paragraphs**  |
|        | ```             |
| multi  | and contain     |
| line   | blocks          |
| cells  | ```             |
+========+=========<+======+
| footer |    cells |      |
+--------+----------+------+
```

-   单元格顶部必须用 `+-` 接着是一些 `-` 或者说 `+` 完成于 `-+`。 。 。 .
-   如果表格包含页脚但没有页眉,则上行应当使用 `=` 作为网格线.
-   col 跨度用缺一栏表示(`|`(a) 划界人
-   缺行表示行长(`-`(a) 划界人
-   单元格可以是左、中、右或对齐的理由;通过放置 `:` 或者说 `><`
-   单元格可以是上,中,或下相v;用箭头的放入表示(`v` `^` `x`(中文(简体) )
-   标题和页脚段由区划符划定(`=`) (中文(简体) ).
-   如果没有分区分隔符,所有单元格都放在表格正文中.
-   如果只有1个区划符,则它从正文中划分标题.
-   单元格中的内容可以再次成为完整的Markdown文档。 注,单元格边界(`|`(中文(简体) ) 需要与列标记完全匹配(`+`在行分隔符中,如果单元格内容 包含 `|`,否则无法保证表格的正确布局.

# 版式

表格布局试图使表格保持一定的宽度(默认为120). 譬如说, 如果表格有3个栏,则每个栏将最大宽40个字符。 如果列中的所有文字 较小, 它会缩小柱子。 然而,当 文本需要被打破。 如果单元格内容需要更多的空格,例如有嵌入式表或 代码块,它会相应增长.

# 对齐

水平对齐通过在单元格上方的网格线上放置标记来表示:

```
Justify     Center     Left       Right
+>-----<+  +:-----:+  +:------+  +------:+
| A b C |  |  ABC  |  | ABC   |  |   ABC |
+-------+  +-------+  +-------+  +-------+
```

垂直对齐通过在单元格上方的网格线中心放置标记来表示:

```
Top        Middle     Bottom
+---^---+  +---x---+  +---v---+
| Larum |  |       |  |       |
| Ipsum |  | Larum |  |       |
|       |  | Ipsum |  | Larum |
|       |  |       |  | Ipsum |
+-------+  +-------+  +-------+
```

## 语法

```ebfn

gridTable := gridLine cellLine+ gridLine;
gridLine := gridCell+ "+";
cellLine := ( gridCell | cellContent )+ ( "+" | "|" );   
gridCell := "+" alignMarkerStart? ("-" | "=")+ vAlignMarker? ("-" | "=")* alignMarkerEnd?;
cellContent := ( "+" | "|" ) " " content " " ;
alignMarkerStart := ":" | ">";
alignMarkerEnd   := ":" | "<";
vAlignMarker     := "^" | "v" | "x"
```

## MDAST 语法树

以下接口被添加到 **[目标数](https://github.com/syntax-tree/mdast)** 由这个工具.

### 节点

#### `GridTable`

```idl
interface GridTable <: Parent {
  type: "gridTable"
  children: [GridTableHeader|GridTableBody|GridTableFooter]
}
```

#### `GridTableHeader`

```idl
interface GridTableHeader <: Parent {
  type: "gtHead"
  children: [GridTableRow]
}
```

#### `GridTableBody`

```idl
interface GridTableBody <: Parent {
  type: "gtBody"
  children: [GridTableRow]
}
```

#### `GridTableFoot`

```idl
interface GridTableFooter <: Parent {
  type: "gtFoot"
  children: [GridTableRow]
}
```

#### `GridTableRow`

```idl
interface GridTableRow <: Parent {
  type: "gtRow"
  children: [GridTableCell]
}
```

#### `GridTableCell`

```idl
interface GridTableCell <: Parent {
  type: "gtCell"
  colSpan: number >= 1
  rowSpan: number >= 1
  align: alignType
  valign: valignType
  children: [MdastContent]
}
```

**网格表环** (单位:千美元)[**家长**](https://github.com/syntax-tree/mdast#parent)) 代表一个标题单元格 [**网格表**](https://npmcn.com/package/%40adobe/mdast-util-gridtables/#readme-table),如果其父母是\[_网格表头_\[术语\],或数据 否则,单元格.

**网格表环** 可用于 [**网格表单**](https://npmcn.com/package/%40adobe/mdast-util-gridtables/#readme-rowcontent) 预期内容. 它的内容模型是 [**目标数**](https://github.com/syntax-tree/mdast#phrasingcontent) 内容,允许完整的mdast文档.

### 编号

#### `alignType`

```idl
enum alignType {
  "left" | "right" | "center" | "justify" | null
}
```

#### `valignType`

```idl
enum alignType {
  "top" | "bottom" | "middle" | null
}
```

## 常见问题

### @adobe/mdast-util-gridtables 是什么？

MDAST 虚拟网格

### 如何安装 @adobe/mdast-util-gridtables？

在项目目录运行 npm install @adobe/mdast-util-gridtables，或使用 pnpm add / yarn add / bun add。

### @adobe/mdast-util-gridtables 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/adobe\_\_mdast-util-gridtables 是否存在。

### @adobe/mdast-util-gridtables 支持 ESM 还是 CommonJS？

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

### @adobe/mdast-util-gridtables 可以商用吗？

@adobe/mdast-util-gridtables 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @adobe/mdast-util-gridtables 的下载量有多少？

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

### @adobe/mdast-util-gridtables 还在维护吗？

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

