📦 treemd — 树形模型(TreeMD)
v1.0.0使用 treemd CLI 进行 Markdown 文档分析和导航。当探索 Markdown 结构(标题树,节提取)和查询 Markdown 时使用...
运行时依赖
安装命令
点击复制技能文档
treemd 技能 用于与 treemd markdown 查看器和查询工具合作的技能。 概述 treemd 是一个基于 Rust 的 CLI,用于 markdown 文档分析。它处理两个主要工作流: 结构导航 —— 探索文档层次结构,从上到下 查询导航 —— 通过提出结构化问题进行导航 对于脚本/代理任务,始终使用 CLI 模式。TUI 模式仅保留用于人类交互式查看。 项目:https://github.com/Epistates/treemd 安装:cargo install treemd 或从发布版本下载二进制文件 行 A:结构导航 当遇到不熟悉的文档时使用此方法。从概述 → 定位 → 提取进行进展。 步骤 1:概述 在深入之前,了解文档的骨架。 treemd --tree FILE.md # 使用框绘字符的视觉树 treemd --count FILE.md # 按级别的标题计数(h1-h6 分解 + 总计) treemd -l FILE.md | head -20 # 所有标题的快速扫描 步骤 2:定位 找到与目标相关的部分。 treemd -l --filter "install" FILE.md # 模糊标题搜索(不区分大小写) treemd -l -L 2 --filter "API" FILE.md # 通过标题级别 + 关键字缩小 treemd --at-line 150 FILE.md # “哪个标题涵盖第 150 行?” 步骤 3:提取 提取整个部分或为下游处理管道内容。 treemd -s "Installation" FILE.md # 提取标题 + 内容,直到下一个 h1/h2 treemd -s "Usage" FILE.md -o json # 为脚本编写的结构化 JSON 输出 cat FILE.md | treemd -s "Prerequisites" - # 从流中管道 stdin,提取 输出格式选项 将 -o 附加到 --list、--tree 或 -s: -o plain:人类可读的文本(默认) -o json:用于脚本编写/解析的 JSON 数组 -o tree:框绘树结构 对于 tql(-q)查询,使用 --query-output 代替 -o。 可用格式: --query-output plain:人类可读的文本(默认) --query-output json:紧凑的 JSON --query-output json-pretty:漂亮的 JSON --query-output jsonl:行分隔的 JSON --query-output md:原始 markdown 渲染 --query-output tree:框绘树结构 行 B:查询导航 当您已经知道要寻找什么时使用此方法。通过 tql(treemd 查询语言)直接跳转到答案 —— 一个类似于 jq 的 markdown DOM 遍历引擎。 元素选择器 查询语法镜像 CSS/JQuery 选择器,操作 markdown AST: treemd -q '.h2' FILE.md # 所有 h2 标题 treemd -q '.code[rust]' FILE.md # Rust 代码块元素 treemd -q '.link | url' FILE.md # 所有链接 URL(管道提取) treemd -q '.h2 | text' FILE.md # 去除 markdown 语法,获取纯文本 层次结构和过滤器 导航父子关系并应用谓词过滤器: treemd -q '.h1[Features] > .h2' FILE.md # “Features” 下的直接子 h2 treemd -q '.h1 >> .code' FILE.md # h1 下的任何位置的代码块 treemd -q '.h | select(contains("API"))' FILE.md # 包含 “API” 的标题 treemd -q '[.h2] | limit(5)' FILE.md # 前 5 个 h2 元素 聚合和文档统计 treemd -q 'stats' FILE.md # 文档指标(标题、链接、代码块) treemd -q 'levels' FILE.md # 每级标题计数 treemd -q 'langs' FILE.md # 代码块语言分布 treemd -q '[.h2] | count' FILE.md # 总 h2 计数 注意:聚合函数(stats、levels、langs、types)不需要 . | 前缀 —— 直接按上述方法使用。 tql 查询输出格式 使用 --query-output 来获取 tql 结果: treemd -q '.h2 | text' --query-output json FILE.md # 紧凑的 JSON treemd -q '.h2 | text' --query-output json-pretty FILE.md # 漂亮的 JSON treemd -q '.link' --query-output jsonl FILE.md # 行分隔的 JSON treemd -q '.h2 | text' --query-output md FILE.md # markdown 渲染 treemd -q '.h1' --query-output tree FILE.md # 框绘树 完整的 tql 语法参考:references/query-language.md。 Stdin 和目录输入 cat README.md | treemd -l - # 从 stdin 读取 markdown treemd ./docs/ # 目录中的文件选择器 treemd *.md # 多文件选择器 TUI 模式 仅保留用于人类交互式会话。不可用于代理。 treemd FILE.md # 启动双窗口交互式查看器 键绑定:vim 风格(j/k 上下,h/l 收缩/展开,/ 搜索,q 退出)。 主题:--theme 集成模式 模式:提取部分用于分析 SECTION=$(treemd -s "Installation" README.md) 模式:提取标题部分内容(tql) treemd -q '.h1["API Reference"] | content' FILE.md # 标题下的完整部分 模式:标题树作为 JSON treemd --tree -o json FILE.md | jq '.' 模式:查找特定标题 # 结构行 treemd -l --filter "Config" FILE.md # 查询行(等效) treemd -q '.h | select(contains("Config"))' FILE.md