Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.