用 Rust 编写的 jq 克隆版,注重正确性、速度与实现简洁,可作为命令行工具或 Rust 库使用。
harehare/mq
类似 jq 的命令行工具与查询语言,用于筛选和转换 Markdown 文件。
- Star
- 1,065
- Fork
- 24
- 未关闭 Issue
- 11
- 最近提交
- 5小时前
这是什么?
mq 是一个用于处理 Markdown 的命令行工具,语法风格类似 jq。你可以用简短的表达式选取标题、代码块、链接、表格和章节等内容,再进行筛选、映射或改写。项目使用 Rust 编写,附带 REPL、面向编辑器的语言服务器和调试器。
除 Markdown 外,mq 还能读取 HTML、CSV、JSON、YAML、TOML、XML 等格式,并将其转换为 Markdown 表格或其他输出。查询可以封装为模块复用,也可以通过名为 mq-* 的可执行文件扩展子命令。沙箱参数可控制查询是否允许读写文件、发起网络请求或执行外部命令。
项目提供 Node.js、WebAssembly、C 等语言绑定,并有 VS Code、Neovim、Zed、JetBrains 等编辑器插件。
核心功能
- 01使用类似 jq 的表达式选取标题、代码块、链接、表格和章节。
- 02通过内置函数和选择器对 Markdown 内容进行筛选与映射。
- 03支持 HTML、CSV、JSON、YAML、TOML、XML 等多种输入格式。
- 04提供交互式 REPL、语言服务器和实验性调试器。
- 05通过可选的沙箱权限控制查询对文件、网络和命令的访问。
适用场景
- 从大型文档集中提取指定章节或代码片段。
- 为 LLM 工作流整理和清洗 Markdown 提示词与输出。
- 在仓库中对大量 Markdown 文件批量执行相同的修改。
- 在脚本或 CI 任务中将 CSV 等数据文件转换为 Markdown 表格。
快速上手
- 1
通过 Homebrew 安装(macOS/Linux)
brew install mq - 2
对 Markdown 文件运行查询以提取代码块
mq '.code' README.md
使用前须知
- 该项目仍处于积极开发阶段,可能会发生变化。
收录于专题
标签
常见问题
- mq 是什么?
- 类似 jq 的命令行工具与查询语言,用于筛选和转换 Markdown 文件。 mq 是一个用于处理 Markdown 的命令行工具,语法风格类似 jq。你可以用简短的表达式选取标题、代码块、链接、表格和章节等内容,再进行筛选、映射或改写。项目使用 Rust 编写,附带 REPL、面向编辑器的语言服务器和调试器。
- mq 可以免费使用吗?用的什么许可证?
- mq 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- mq 还在维护吗?
- 活跃维护中。mq 最近一次提交是在 2026年10月22日。
- mq 适合用来做什么?
- 从大型文档集中提取指定章节或代码片段。 为 LLM 工作流整理和清洗 Markdown 提示词与输出。 在仓库中对大量 Markdown 文件批量执行相同的修改。 在脚本或 CI 任务中将 CSV 等数据文件转换为 Markdown 表格。
- mq 怎么安装和运行?
- 通过 Homebrew 安装(macOS/Linux): brew install mq 对 Markdown 文件运行查询以提取代码块: mq '.code' README.md
- 在哪里获取 mq?
- 源代码和安装说明在 GitHub 上:https://github.com/harehare/mq
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
3809126RustMIT更新于 昨天
基于 Markdown 的知识图谱,提供编辑器 LSP、CLI 和 MCP 服务,让你与 AI 智能体共享同一套笔记。
179092RustApache-2.0更新于 前天
Python 字符编码检测库,可识别字节数据的编码,并附带语言与 MIME 类型检测及命令行工具。
2680311Python0BSD更新于 4天前
用 Rust 重写的 TypeScript 7 编译器与语言服务,可直接替换现有类型检查流程。
193936RustApache-2.0更新于 1小时前
TypeScript 7 编译器(tsc)的实验性 Rust 移植版,保持相同的命令行、语言服务和 API。
148198RustMIT更新于 2小时前
用于抓取网页并从 HTML 中提取正文、元数据和评论的 Python 库与命令行工具。
7009462PythonApache-2.0更新于 2小时前