用途:使用 mq(类似 jq 的 Markdown 查询语言)处理 Markdown 文件,实现内容提取、筛选、转换与批量处理。
主要能力:提供丰富选择器,如 .h(全部标题)、.h1–.h6、.text、.code、.code_inline、.strong、.emphasis、.delete、.link、.image、.list、.blockquote、.[][](表格单元格)、.html、.footnote、.math、.yaml、.toml、.link_ref、.image_ref、.definition 等。支持选择器调用过滤,如 .h(1)、.h(2, 3)、.h(1..3)、.code("rust");可访问属性,如 .h.level、.h.value、.code.lang、.link.url、.image.alt、.list.checked 等;支持更新操作符(如 .code.lang |= "rust")与递归下降(..ident)。
使用方式:命令行调用,例如 mq '.h' file.md 提取标题,mq -U '.code.lang |= "rust"' file.md 就地更新,mq -F html 'identity' file.md 转 HTML,mq -I html 'identity' page.html 将 HTML 转 Markdown。提供多文件处理标志,如 -A(聚合)、--eval-all、-S(分隔符);支持 --stream 流式处理大文件。可用 mq repl 进入交互式会话。
适用场景:文档内容抽取、跨文件目录生成、格式转换、批量修改标题或代码语言、按章节操作等。
限制:不适用于二进制文件处理;无转换需求的简单 cat/echo 场景不必使用;非 Markdown 数据更适合 jq(JSON)或 yq(YAML)。HTML 输入时需使用 Markdown 选择器而非 HTML 标签。