QuarkdownでMarkdownを本やスライドへ組版する
スーパーパワーによるマークダウン: アイデアから論文、プレゼンテーション、Web サイト、書籍、知識ベースまで。
ひと目でわかる
- これは何?
- 関数、変数、条件分岐、ループを持つMarkdown拡張から、HTML、PDF、GFM、プレーンテキストを一つのソースから生成するKotlin製組版システムです。
- 誰に向いている?
- Quarkdownは、Markdownの読みやすさを保ちながら本、論文、スライド、技術文書へ同じ内容を展開したい人に向きます。単純なMarkdown表示だけが必要な場合や、CLIとLSPのライセンス条件を確認できない組織には向きません。
- 商用利用できる?
- 条件付きでできます。GPL-3.0 はコピーレフトのライセンスで、これを含むソフトウェアを配布する場合、そのソフトウェアのソースコードを同じライセンスで公開する必要があります。配布せず社内で使うだけなら、この義務は生じません。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に Kotlin です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Quarkdown Flavorは関数を持つMarkdown
QuarkdownはCommonMarkとGFMを土台に、ドット接頭辞で呼び出す関数と変数を追加します。.somefunction {arg1} {arg2}のような呼び出しをソースに置き、標準ライブラリのレイアウト、I/O、数学、条件文、ループを使えます。独自関数もMarkdown内で定義できます。
READMEはこの拡張をチューリング完全と表現し、繰り返しコンテンツを一行の関数呼び出しへまとめられる点を示します。見た目がMarkdownでも、入力が計算やファイルI/Oを含むなら、通常の静的テキストと同じ権限で扱わないことが必要です。
quarkdown create、quarkdown c file.qd、.doctype、--preview、--watch、--pdf、mock/main.qdを一度に全部採用せず、1番目の確認では入力、処理、出力、失敗時の表示を分けて記録します。READMEにある名称と手元で実行した版を同じ記録へ残し、画面の成功表示だけで完了としません。設定を変更した場合は変更前の値、実行日時、生成物、ログの該当行を保存し、同じ入力を戻して比較します。
doctypeが出力先を選ぶ
HTMLにはplain、paged、slides、docsの4種類があります。plainは連続フロー、pagedはpaged.jsを用いた論文や本、slidesはreveal.jsによる対話的プレゼンテーション、docsはウィキや技術文書向けです。PDFはHTMLが対応する文書型を出力し、GFM Markdownとプレーンテキストも選べます。
ソース内の.doctype {plain}、{paged}、{slides}、{docs}で文書型を選択します。同じ内容でもページ区切り、スライドの進行、Webの連続表示は別の制約を持つため、変換成功だけでなく見出し、表、画像、リンク、改ページを各ターゲットで確認します。
quarkdown create、quarkdown c file.qd、.doctype、--preview、--watch、--pdf、mock/main.qdを一度に全部採用せず、2番目の確認では入力、処理、出力、失敗時の表示を分けて記録します。READMEにある名称と手元で実行した版を同じ記録へ残し、画面の成功表示だけで完了としません。設定を変更した場合は変更前の値、実行日時、生成物、ログの該当行を保存し、同じ入力を戻して比較します。
CLIで作成からコンパイルまで進む
READMEはLinuxとmacOSのcurlスクリプト、Homebrew、WindowsのPowerShellとScoop、setup-quarkdown GitHub Action、安定版zip、gradlew installDistを導入経路として挙げます。quarkdown createはメタデータと初期コンテンツを持つプロジェクトを対話的に生成します。
コンパイルはquarkdown c file.qdで、複数ファイルではルートファイルをtargetにします。-pまたは--previewは自動リロード、-wまたは--watchは変更時の再コンパイル、--pdfはPDF生成です。REPLはquarkdown replで試せます。
quarkdown create、quarkdown c file.qd、.doctype、--preview、--watch、--pdf、mock/main.qdを一度に全部採用せず、3番目の確認では入力、処理、出力、失敗時の表示を分けて記録します。READMEにある名称と手元で実行した版を同じ記録へ残し、画面の成功表示だけで完了としません。設定を変更した場合は変更前の値、実行日時、生成物、ログの該当行を保存し、同じ入力を戻して比較します。
エディターとMockを検証材料にする
VS Code拡張とIntelliJ IDEA向け拡張がREADMEにリンクされています。リポジトリにはMock文書があり、mock/main.qdをquarkdown c mock/main.qd -pでコンパイルして視覚的な要素を確認できます。公式wikiは多数のサブ文書から構成されるサンプルです。
READMEにはwikiが約2秒でコンパイルできるという自報がありますが、ハードウェアや測定方法は示されません。自分の環境では小さな文書、Mock、複数ファイルの文書を順にコンパイルし、所要時間と生成物を記録します。
quarkdown create、quarkdown c file.qd、.doctype、--preview、--watch、--pdf、mock/main.qdを一度に全部採用せず、4番目の確認では入力、処理、出力、失敗時の表示を分けて記録します。READMEにある名称と手元で実行した版を同じ記録へ残し、画面の成功表示だけで完了としません。設定を変更した場合は変更前の値、実行日時、生成物、ログの該当行を保存し、同じ入力を戻して比較します。
GPLv3とAGPLv3を分けて確認する
Quarkdown本体とモジュールは既定でGNU GPLv3、CLIのquarkdown-cliと言語サーバーのquarkdown-lspはGNU AGPLv3とREADMEに記載されています。メタデータのlicenseはGPL-3.0ですが、利用する部品によって条件が分かれるため、リポジトリの各モジュールを特定して確認します。
採用時はCLIを配布するのか、LSPを組織内で使うのか、生成物だけを配布するのかを分け、法務が対応するライセンス本文を読みます。GPLの保証なしという性質も踏まえ、v2.5.1などの版、生成コマンド、出力物、依存関係を記録してから運用範囲を決めます。
quarkdown create、quarkdown c file.qd、.doctype、--preview、--watch、--pdf、mock/main.qdを一度に全部採用せず、5番目の確認では入力、処理、出力、失敗時の表示を分けて記録します。READMEにある名称と手元で実行した版を同じ記録へ残し、画面の成功表示だけで完了としません。設定を変更した場合は変更前の値、実行日時、生成物、ログの該当行を保存し、同じ入力を戻して比較します。
採用を決める記録には、対象機能を使わなかった場合の代替結果も残します。入力を小さくした場合に成功しても、実際のデータ量、権限、保存先、実行先が変われば同じ結論にはなりません。READMEが説明していない保証は未確認として扱い、確認できた出力と確認できなかった項目を分けて判断します。
編集部の結論
Quarkdownは、Markdownの読みやすさを保ちながら本、論文、スライド、技術文書へ同じ内容を展開したい人に向きます。単純なMarkdown表示だけが必要な場合や、CLIとLSPのライセンス条件を確認できない組織には向きません。最初にquarkdown createで小さなプロジェクトを作り、quarkdown c file.qd、--preview、--watch、--pdfの出力を比較してください。
コミュニティノート