Sobre o projeto
mq é uma ferramenta de linha de comando para processar Markdown com uma sintaxe de consulta inspirada no jq. Escrita em Rust, permite fatiar, filtrar, mapear e transformar documentos Markdown, e também aceita muitos outros formatos de entrada e saída.
Os usos típicos descritos pelo projeto incluem preparar e manipular Markdown para prompts e saídas de LLM, gerar Markdown estruturado para consumo por LLM, gerenciar documentação entre arquivos, extrair seções ou padrões de documentos e aplicar transformações em lote consistentes.
Capacidades principais:
- Seletores e funções internas para fatiar, filtrar, mapear e transformar conteúdo Markdown.
- CLI com opções para agregação, streaming de arquivos grandes, monitoramento de alterações em arquivos, avaliação em todas as entradas e controle da saída.
- Formatos de entrada incluem markdown, mdx, html, text, null, raw, bytes, cbor, csv, gron, json, psv, toml, toon, tsv, xml e yaml; formatos de saída incluem markdown, html, text, json, table, grep, gron, raw, csv, toml, toon, xml, yaml, shell e none.
- Modo de atualização que grava nós Markdown transformados em stdout, além de um modo diff que imprime um diff unificado e sai com código 1 quando haveria alterações.
- REPL para execução interativa de consultas, um formatador, um linter de análise estática, um verificador de tipos e um depurador experimental (mq-dbg) com suporte ao Debug Adapter Protocol.
- Implementação do Language Server Protocol e integrações com editores para VS Code, Neovim, Zed, IDEs JetBrains, Obsidian, Helix e Chrome, além de uma GitHub Action para CI.
- Subcomandos externos por meio de executáveis chamados mq- colocados em ~/.local/bin/.
- Permissões em sandbox: rede, leitura/escrita no sistema de arquivos, execução de comandos e acesso ao ambiente ficam desabilitados por padrão e podem ser concedidos individualmente ou por presets (strict, read-only, networked, unsafe). Importações de módulos HTTP também são opt-in, com listas de domínios permitidos, cache, verificação de integridade por lockfile e um modo congelado para CI.
Distribuição e empacotamento:
- Script de instalação, Homebrew, Arch (yay), Cargo (mq-run), imagem Docker, binstall e binários pré-compilados para macOS, Linux e Windows.
- Um monorepo Rust e TypeScript com 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 e mq-wasm, além dos pacotes npm mq-web e mq-nodejs.
- Uma REST API hospedada e um playground no navegador; bindings de linguagem para Elixir, Python, Ruby, Java e Go.
A documentação é fornecida por meio de um site, um livro online, um cookbook de receitas orientadas a tarefas e um guia de exemplos. O projeto afirma estar em desenvolvimento ativo e é licenciado sob MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.