Repolode
syntax-tree

syntax-tree/unist-util-visit

用于遍历 unist 语法树节点的工具,可按条件筛选节点并设置进入/离开回调。

Star
359
Fork
23
未关闭 Issue
0
最近提交
14天前

这是什么?

unist-util-visit 用于遍历基于 unist 的语法树,例如 mdast-util-from-markdown 生成的 MDAST 树,并对每个节点调用访问函数。可以传入测试条件,只访问符合条件的节点,测试格式与 unist-util-is 一致,例如直接写节点类型字符串。

访问函数会接收当前节点、它在父节点中的索引以及父节点本身。函数可以返回 CONTINUE 继续遍历、EXIT 立即停止,或返回 SKIP 跳过该节点的子节点;也可以再提供一个 exit 函数,在子节点处理完毕后执行。该包仅支持 ESM,要求 Node.js 16 及以上,也可通过 esm.sh 在 Deno 和浏览器中使用。

如果需要每个节点的完整祖先链,可以使用同系列的 unist-util-visit-parents;本包的用法基本相同,但提供的是 parent 和 index。

核心功能

  • 01遍历 unist 树中的每个节点,可通过节点类型等条件筛选。
  • 02访问函数可获取节点、其索引和父节点。
  • 03通过返回 CONTINUE、EXIT 或 SKIP 控制遍历流程。
  • 04支持分别设置进入和离开时的访问函数。
  • 05可在 Node.js、Deno 和浏览器中通过 esm.sh 使用。

适用场景

  • 在 remark 或 unified 插件中查找并转换特定的 Markdown 节点,例如所有文本或代码节点。
  • 在构建流程中从语法树收集信息。
  • 基于兼容 unist 的解析器开发自定义 lint 规则或转换器。

快速上手

  1. 1

    使用 npm 安装该包(需 Node.js 16+)

    npm install unist-util-visit
  2. 2

    导入 visit 并遍历语法树(例如由 fromMarkdown 生成的树)

使用前须知

  • 该包仅支持 ESM,无法在 CommonJS 项目中通过 require() 加载。
  • 它是面向 unist 语法树的底层遍历工具,需要配合 mdast-util-from-markdown 等解析器生成输入。

收录于专题

标签

#syntax-tree#unist#ast#markdown#tree-traversal#unified#unist-util#util#visit#walk

常见问题

unist-util-visit 是什么?
用于遍历 unist 语法树节点的工具,可按条件筛选节点并设置进入/离开回调。 unist-util-visit 用于遍历基于 unist 的语法树,例如 mdast-util-from-markdown 生成的 MDAST 树,并对每个节点调用访问函数。可以传入测试条件,只访问符合条件的节点,测试格式与 unist-util-is 一致,例如直接写节点类型字符串。
unist-util-visit 可以免费使用吗?用的什么许可证?
unist-util-visit 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
unist-util-visit 还在维护吗?
活跃维护中。unist-util-visit 最近一次提交是在 2026年10月24日。
unist-util-visit 适合用来做什么?
在 remark 或 unified 插件中查找并转换特定的 Markdown 节点,例如所有文本或代码节点。 在构建流程中从语法树收集信息。 基于兼容 unist 的解析器开发自定义 lint 规则或转换器。
unist-util-visit 怎么安装和运行?
使用 npm 安装该包(需 Node.js 16+): npm install unist-util-visit 导入 visit 并遍历语法树(例如由 fromMarkdown 生成的树)
在哪里获取 unist-util-visit?
源代码和安装说明在 GitHub 上:https://github.com/syntax-tree/unist-util-visit

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目