Sobre el proyecto

mq es una herramienta de línea de comandos para procesar Markdown con una sintaxis de consulta modelada en jq. Escrito en Rust, permite a los usuarios cortar, filtrar, mapear y transformar documentos Markdown, y también acepta muchos otros formatos de entrada y salida. Los usos típicos descritos por el proyecto incluyen preparar y manipular Markdown para indicaciones y salidas de LLM, generar Markdown estructurado para consumo de LLM, gestionar documentación entre archivos, extraer secciones o patrones de documentos y aplicar transformaciones por lotes consistentes. Capacidades principales: - Selectores y funciones integradas para cortar, filtrar, mapear y transformar contenido Markdown. - CLI con opciones para agregación, transmisión de archivos grandes, vigilancia de cambios en archivos, evaluación en todas las entradas y control de salida. - Los formatos de entrada incluyen markdown, mdx, html, text, null, raw, bytes, cbor, csv, gron, json, psv, toml, toon, tsv, xml y yaml; los formatos de salida incluyen markdown, html, text, json, table, grep, gron, raw, csv, toml, toon, xml, yaml, shell y none. - Modo de actualización que escribe nodos Markdown transformados a stdout, además de un modo diff que imprime un diff unificado y sale con código 1 cuando se producirían cambios. - REPL para ejecución interactiva de consultas, un formateador, un linter de análisis estático, un verificador de tipos y un depurador experimental (mq-dbg) con soporte para el Protocolo de Adaptador de Depuración. - Implementación del Protocolo de Servidor de Lenguaje e integraciones de editores para VS Code, Neovim, Zed, IDE de JetBrains, Obsidian, Helix y Chrome, además de una Acción de GitHub para CI. - Subcomandos externos mediante ejecutables llamados mq- colocados en ~/.local/bin/. - Permisos sandbox: red, lectura/escritura del sistema de archivos, ejecución de comandos y acceso al entorno están deshabilitados por defecto y pueden otorgarse individualmente o mediante ajustes preestablecidos (strict, read-only, networked, unsafe). Las importaciones del módulo HTTP también son opcionales, con listas de dominios permitidos, caché, comprobaciones de integridad del archivo de bloqueo y un modo congelado para CI. Distribución y empaquetado: - Script de instalación, Homebrew, Arch (yay), Cargo (mq-run), imagen Docker, binstall y binarios precompilados para macOS, Linux y Windows. - Un monorepo de Rust y TypeScript con crates como 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 y mq-wasm, además de paquetes npm mq-web y mq-nodejs. - Una API REST alojada y un playground de navegador; enlaces de lenguaje para Elixir, Python, Ruby, Java y Go. La documentación se proporciona a través de un sitio web, un libro en línea, un recetario de recetas orientadas a tareas y una guía de ejemplos. El proyecto declara que está en desarrollo activo y tiene licencia MIT.