Repolode
harehare

harehare/mq

Markdownファイルの切り出し、フィルタリング、変換を行う、jq風のCLIツール兼クエリ言語。

スター
1,065
フォーク
24
未解決の Issue
11
最終コミット
3 時間前

これは何?

mqを使うと、jqでJSONを扱うようにMarkdownをクエリして変換できます。短い式で見出し、コードブロック、リンク、表、セクションなどの部分を選択し、CLIからフィルタリング、マッピング、書き換えを行えます。Rustで書かれており、REPL、エディター向けのlanguage server、デバッガーが付属します。

Markdown以外にも、HTML、CSV、JSON、YAML、TOML、XMLなど複数の入力形式を読み込み、Markdownの表などに変換できます。クエリはモジュールとして再利用でき、mq-*という名前の外部サブコマンドをCLIに追加できます。サンドボックスのフラグで、クエリによるファイルの読み書き、ネットワークリクエスト、コマンド実行を許可するか制御できます。

Node.js、WebAssembly、Cなど複数の言語向けバインディングに加え、VS Code、Neovim、Zed、JetBrains IDE向けのエディター拡張機能も提供しています。

主な機能

  • 01jq風の式を使って、見出し、コードブロック、リンク、表、セクションを選択できます。
  • 02組み込み関数やセレクターを使い、Markdownの内容をフィルタリングしたりマッピングしたりできます。
  • 03HTML、CSV、JSON、YAML、TOML、XMLを入力として読み込み、複数の形式で出力できます。
  • 04対話型REPL、language server、実験的なデバッガーが付属します。
  • 05オプトイン方式のサンドボックス権限のもとで、ファイル、ネットワーク、コマンドへのアクセスを制御してクエリを実行できます。

ユースケース

  • 大量のドキュメントから特定のセクションやコードスニペットを抽出する。
  • LLMのワークフローで使うプロンプトや出力のMarkdownを整えたり、不要な内容を取り除いたりする。
  • リポジトリ内の多数のMarkdownファイルに同じ編集をまとめて適用する。
  • スクリプトやCIジョブからCSVなどのデータファイルをMarkdownの表に変換する。

クイックスタート

  1. 1

    Homebrewでインストール(macOS/Linux)

    brew install mq
  2. 2

    Markdownファイルにクエリを実行してコードブロックを抽出

    mq '.code' README.md

使う前に知っておきたいこと

  • プロジェクトは活発に開発中のため、変更される可能性があります。

収録されている特集

トピック

よくある質問

mq とは?
Markdownファイルの切り出し、フィルタリング、変換を行う、jq風のCLIツール兼クエリ言語。 mqを使うと、jqでJSONを扱うようにMarkdownをクエリして変換できます。短い式で見出し、コードブロック、リンク、表、セクションなどの部分を選択し、CLIからフィルタリング、マッピング、書き換えを行えます。Rustで書かれており、REPL、エディター向けのlanguage server、デバッガーが付属します。
mq は無料で使えますか?ライセンスは?
mq は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
mq は今もメンテナンスされていますか?
活発にメンテナンス中。mq の最終コミットは 2026年10月22日 です。
mq は何に使えますか?
大量のドキュメントから特定のセクションやコードスニペットを抽出する。 LLMのワークフローで使うプロンプトや出力のMarkdownを整えたり、不要な内容を取り除いたりする。 リポジトリ内の多数のMarkdownファイルに同じ編集をまとめて適用する。 スクリプトやCIジョブからCSVなどのデータファイルをMarkdownの表に変換する。
mq のインストール方法は?
Homebrewでインストール(macOS/Linux): brew install mq Markdownファイルにクエリを実行してコードブロックを抽出: mq '.code' README.md
mq はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/harehare/mq

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト