Об этом проекте

mq — это инструмент командной строки для обработки Markdown с синтаксисом запросов, основанным на jq. Написанный на Rust, он позволяет пользователям нарезать, фильтровать, сопоставлять и преобразовывать Markdown-документы, а также принимает множество других форматов ввода и вывода. Типичные варианты использования, описанные проектом, включают подготовку и манипулирование Markdown для промптов и выводов LLM, генерацию структурированного Markdown для потребления LLM, управление документацией в нескольких файлах, извлечение разделов или шаблонов из документов и применение согласованных пакетных преобразований. Основные возможности: - Селекторы и встроенные функции для нарезки, фильтрации, сопоставления и преобразования содержимого Markdown. - CLI с опциями для агрегации, потоковой обработки больших файлов, отслеживания изменений файлов, оценки по всем входам и управления выводом. - Форматы ввода включают markdown, mdx, html, text, null, raw, bytes, cbor, csv, gron, json, psv, toml, toon, tsv, xml и yaml; форматы вывода включают markdown, html, text, json, table, grep, gron, raw, csv, toml, toon, xml, yaml, shell и none. - Режим обновления, который записывает преобразованные узлы Markdown в stdout, а также режим diff, который печатает объединенный diff и завершается с кодом 1, если изменения произошли бы. - REPL для интерактивного выполнения запросов, форматтер, линтер статического анализа, проверка типов и экспериментальный отладчик (mq-dbg) с поддержкой Debug Adapter Protocol. - Реализация Language Server Protocol и интеграции с редакторами для VS Code, Neovim, Zed, IDE JetBrains, Obsidian, Helix и Chrome, а также GitHub Action для CI. - Внешние подкоманды через исполняемые файлы с именем mq-, размещенные в ~/.local/bin/. - Песочница с разрешениями: сеть, чтение/запись файловой системы, выполнение команд и доступ к окружению отключены по умолчанию и могут быть предоставлены индивидуально или через пресеты (strict, read-only, networked, unsafe). Импорты HTTP-модулей также являются опциональными, с белыми списками доменов, кэшированием, проверками целостности lockfile и замороженным режимом для CI. Распространение и упаковка: - Скрипт установки, Homebrew, Arch (yay), Cargo (mq-run), Docker-образ, binstall и предварительно собранные бинарники для macOS, Linux и Windows. - Монорепозиторий на Rust и TypeScript с крейтами, такими как 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 и mq-wasm, а также npm-пакеты mq-web и mq-nodejs. - Размещенный REST API и браузерная песочница; привязки для Elixir, Python, Ruby, Java и Go. Документация предоставляется через веб-сайт, онлайн-книгу, кулинарную книгу с рецептами, ориентированными на задачи, и руководство с примерами. Проект заявляет, что находится в активной разработке и лицензирован под MIT.