@adobe/mdast-util-gridtables

中文文档
4.0.20发布于 2026/10/04Apache-2.0ES Module构建来源已验证近 30 天下载 9万

MDAST 虚拟网格

中文使用文档
文档目录10 节
  1. 状态
  2. 这是什么?
  3. 何时使用
  4. 安装
  5. 使用量
  6. 概览
  7. 语法
  8. MDAST 语法树
  9. 节点
  10. 编号

MDAST 虚拟网格

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

状态

codecov GitHub Actions Workflow Status GitHub license GitHub issues semantic-release

这是什么?

此软件包包含添加格表语法支持的扩展名 改为 mdast-util-from-markdown 财务报告和审定财务报表 mdast-util-to-markdown。 。 。 .

何时使用

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

合作时 mdast-util-from-markdown,您必须结合此软件包和 @adobe/micromark-extension-gridtables。 。 。 .

此工具不处理如何将标记降为 HTML . 这是由 mdast-util-to-hast。 。 。 .

安装

这个软件包是 仅限无害环境管理。 。 。 . 在Node.js(12.20+,14.14+,或16.0+)中,安装与 无数字 :

npm install @adobe/mdast-util-gridtables

使用量

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

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(),
  },
});

还见一个工作 实例。 。 。 .

概览

网格表是这样的:

+-------------------+------+
| 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 |
+-------+  +-------+  +-------+

语法


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

MDAST 语法树

以下接口被添加到 目标数 由这个工具.

节点

GridTable

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

GridTableHeader

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

GridTableBody

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

GridTableFoot

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

GridTableRow

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

GridTableCell

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

网格表环 (单位:千美元)家长) 代表一个标题单元格 网格表,如果其父母是[网格表头[术语],或数据 否则,单元格.

网格表环 可用于 网格表单 预期内容. 它的内容模型是 目标数 内容,允许完整的mdast文档.

编号

alignType

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

valignType

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

版本与发布记录

@adobe/mdast-util-gridtables 共发布 37 个版本,首次发布于 2022/10/07;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.0.20latest2026/10/041 个月前
4.0.192026/04/136 个月前
4.0.182026/03/197 个月前
4.0.172026/02/228 个月前
4.0.162026/01/259 个月前
4.0.152025/11/3011 个月前

关于 @adobe/mdast-util-gridtables 的常见问题

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