À propos du projet
mq est un outil en ligne de commande pour traiter du Markdown avec une syntaxe de requête inspirée de jq. Écrit en Rust, il permet aux utilisateurs de découper, filtrer, mapper et transformer des documents Markdown, et accepte également de nombreux autres formats d'entrée et de sortie.
Les utilisations typiques décrites par le projet incluent la préparation et la manipulation de Markdown pour les invites et sorties de LLM, la génération de Markdown structuré pour la consommation par LLM, la gestion de documentation sur plusieurs fichiers, l'extraction de sections ou de motifs de documents, et l'application de transformations par lots cohérentes.
Capacités principales :
- Sélecteurs et fonctions intégrées pour découper, filtrer, mapper et transformer le contenu Markdown.
- CLI avec options pour l'agrégation, le streaming de fichiers volumineux, la surveillance des modifications de fichiers, l'évaluation sur toutes les entrées et le contrôle de la sortie.
- Les formats d'entrée incluent markdown, mdx, html, text, null, raw, bytes, cbor, csv, gron, json, psv, toml, toon, tsv, xml et yaml ; les formats de sortie incluent markdown, html, text, json, table, grep, gron, raw, csv, toml, toon, xml, yaml, shell et none.
- Mode de mise à jour qui écrit les nœuds Markdown transformés sur stdout, plus un mode diff qui imprime un diff unifié et sort avec le code 1 si des changements se produiraient.
- REPL pour l'exécution interactive de requêtes, un formateur, un linter d'analyse statique, un vérificateur de types, et un débogueur expérimental (mq-dbg) avec prise en charge du protocole d'adaptateur de débogage.
- Implémentation du protocole de serveur de langage et intégrations d'éditeurs pour VS Code, Neovim, Zed, IDE JetBrains, Obsidian, Helix et Chrome, plus une action GitHub pour l'intégration continue.
- Sous-commandes externes via des exécutables nommés mq- placés dans ~/.local/bin/.
- Permissions sandboxées : l'accès réseau, la lecture/écriture du système de fichiers, l'exécution de commandes et l'accès à l'environnement sont désactivés par défaut et peuvent être accordés individuellement ou via des préréglages (strict, lecture seule, réseau, non sûr). Les imports du module HTTP sont également facultatifs, avec des listes blanches de domaines, la mise en cache, la vérification d'intégrité des fichiers de verrouillage et un mode figé pour l'intégration continue.
Distribution et empaquetage :
- Script d'installation, Homebrew, Arch (yay), Cargo (mq-run), image Docker, binstall et binaires précompilés pour macOS, Linux et Windows.
- Un monorepo Rust et TypeScript avec des crates tels que 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 et mq-wasm, plus les paquets npm mq-web et mq-nodejs.
- Une API REST hébergée et un terrain de jeu navigateur ; des liaisons de langage pour Elixir, Python, Ruby, Java et Go.
La documentation est fournie via un site web, un livre en ligne, un livre de recettes orienté tâches et un guide d'exemples. Le projet indique qu'il est en développement actif et est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.