这个项目能做什么

mq 是一款用于处理 Markdown 的命令行工具,其查询语法模仿 jq。它使用 Rust 编写,让用户能够切片、过滤、映射和转换 Markdown 文档,同时也接受许多其他输入和输出格式。 该项目描述的典型用途包括:为 LLM 提示词和输出准备与操作 Markdown、生成供 LLM 使用的结构化 Markdown、跨文件管理文档、从文档中提取章节或模式,以及应用一致的批量转换。 核心能力: - 用于切片、过滤、映射和转换 Markdown 内容的选择器和内置函数。 - CLI 提供聚合、流式处理大文件、监视文件变化、对所有输入求值以及控制输出等选项。 - 输入格式包括 markdown、mdx、html、text、null、raw、bytes、cbor、csv、gron、json、psv、toml、toon、tsv、xml 和 yaml;输出格式包括 markdown、html、text、json、table、grep、gron、raw、csv、toml、toon、xml、yaml、shell 和 none。 - 更新模式将转换后的 Markdown 节点写入 stdout,另有 diff 模式打印统一 diff,并在将发生更改时以 1 退出。 - 用于交互式查询执行的 REPL、格式化器、静态分析 linter、类型检查器,以及支持 Debug Adapter Protocol 的实验性调试器(mq-dbg)。 - Language Server Protocol 实现,以及面向 VS Code、Neovim、Zed、JetBrains IDE、Obsidian、Helix 和 Chrome 的编辑器集成,另有用于 CI 的 GitHub Action。 - 通过放置在 ~/.local/bin/ 中、名为 mq- 的可执行文件提供外部子命令。 - 沙箱权限:网络、文件系统读写、命令执行和环境访问默认禁用,可以单独授予,也可以通过预设(strict、read-only、networked、unsafe)授予。HTTP 模块导入同样需要显式启用,并支持域名允许列表、缓存、锁文件完整性检查以及用于 CI 的冻结模式。 分发与打包: - 安装脚本、Homebrew、Arch(yay)、Cargo(mq-run)、Docker 镜像、binstall,以及适用于 macOS、Linux 和 Windows 的预构建二进制文件。 - 一个 Rust 和 TypeScript monorepo,包含 mq-run、mq-lang、mq-markdown、mq-lsp、mq-repl、mq-formatter、mq-lint、mq-check、mq-hir、mq-dap、mq-crawler、mq-web-api、mq-macros、mq-test、mq-ffi 和 mq-wasm 等 crate,以及 npm 包 mq-web 和 mq-nodejs。 - 托管 REST API 和浏览器 playground;面向 Elixir、Python、Ruby、Java 和 Go 的语言绑定。 文档通过网站、在线书籍、面向任务的 cookbook 和示例指南提供。该项目表示其正在积极开发中,并采用 MIT 许可证。