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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.