10 ポイント 投稿者 GN⁺ 2025-06-04 | 5件のコメント | WhatsAppで共有
  • 既存の Markdown 構文を拡張し、書籍、論文、スライド、プレゼンテーション など多様な形式の文書を手軽に制作できる モダンなタイポグラフィシステム
  • 関数対応、変数利用、条件分岐/ループ、標準ライブラリ などの高度な機能をMarkdownに直接組み込み、従来のMarkdownやLaTeXより 拡張性と自動化 で差別化
  • 1つのソースファイルから HTML、PDF、スライド(reveal.js)、ページング書籍(paged.js) など複数の出力物を生成可能で、コードベースのコンテンツ制作に特化
  • スクリプティング機能表現力の高い拡張構文 により、複雑または動的なコンテンツも自由に実装可能
  • REPL、ライブプレビュー、高速コンパイル 環境を提供し、リアルタイムの文書編集とデバッグが可能
  • 既存ツールと比べて スクリプティング機能、文書制御、学習しやすさ などの点で Markdown、LaTeX、Typst、AsciiDoc、MDX に対する強みを持つ
  • 別途開発環境や複雑な設定なしに Java 17以上 があれば主要OSで利用可能

About

  • Quarkdown は、Markdown の基本構造に関数と拡張構文を追加することで、単純なテキストから 書籍、論文、スライド まで、多様な形式の完成度の高い成果物を簡単に作成できるよう設計された最新の組版システム
  • CommonMark と GFM をベースに開発されており、独自構文に加えて、関数、変数、ユーザー定義ライブラリまで幅広くサポート
    • Quarkdown Flavor という独自構文を提供
    • チューリング完全な関数拡張構文 により、Markdownに関数、条件分岐、ループなどの高度な機能を追加
  • .qmd ライブラリで、レイアウト、入出力、数学、条件分岐、ループなど多様な機能を利用可能
  • 複雑な文書構造や動的コンテンツが必要な場合でも、拡張性と生産性を高められる

主な特徴と活用方法

  • HTML、スライド、書籍(Paged)、PDF など多様な出力フォーマットに対応
    • .doctype {slides}.doctype {paged} などの関数呼び出しで文書タイプを指定可能
    • reveal.js、paged.js などのオープンソースベースのエンジンと連携
  • スクリプティングと動的コンテンツ
    • 関数、変数、条件分岐、ループなどのプログラミング要素を導入
    • 例) .function {greet} ... .greet {world} from:{iamgio}
  • ライブプレビュー、高速コンパイル
    • リアルタイムプレビューとファイル変更監視(Watch)機能を提供
    • -p --preview-w --watch オプションで作業効率を向上
  • 他の文書ツールとの比較
    • LaTeXより学習コストが低く、Markdownより機能拡張性に優れる
    • Typst、AsciiDoc、MDX などと比べてもスクリプティング/表現力で強み

対応ターゲット

  • HTML
    • 通常出力(デフォルト)
    • スライド(reveal.js を活用)
    • 書籍/論文形式(paged.js を活用、Webサーバーが必要)
  • PDF
    • HTMLが対応するすべての文書タイプ・機能をそのままPDFとして出力可能
    • PDF出力の詳細は wiki ドキュメント を参照
  • .doctype {slides}、`.doctype {paged}`` のような関数呼び出しで出力フォーマットを制御

比較

Quarkdown Markdown LaTeX Typst AsciiDoc MDX
簡潔さ・可読性
文書全体の制御
スクリプティング機能 一部対応
書籍/記事形式の出力 3rd party
プレゼンテーション出力 3rd party
学習曲線 オレンジ
ターゲット対応 HTML, PDF HTML PDF, PostScript PDF HTML, PDF, ePub HTML

5件のコメント

 
plastic041 2025-06-05

テーブルがあるせいか、モバイルのレイアウトが崩れていますね。

 
plastic041 2025-06-05

.topic_contentsmin-width: 0 を指定すると直ります。min-width のせいで本当に厄介ですね……

 
xguru 2025-06-05

あっ、別の方法で解決しました。ありがとうございます!

 
plastic041 2025-06-05

迅速なフィードバックありがとうございます〜

 
GN⁺ 2025-06-04
Hacker Newsのコメント
  • 私のFOSSテキストエディタ KeenWrite は、Markdown から XHTML、TeX、そして PDF に変換する似た方式を使っています
    このソフトウェアアーキテクチャは、プロセッサチェーンをどう設計できるかを示しています
    私が KeenWrite を作った理由は、SF小説を書くときに登場人物の名前や地域のような変数を使えるようにするためでした
    詳しくはチュートリアルを参照してください
    いまだに pandoc とシェルスクリプトを使っている人向けには、Typesetting Markdown のシリーズで、Markdown を PDF に変換するスクリプトベースのインフラの構築方法を説明しています
    KeenWrite 自体の情報はこちらで見られます
    アーキテクチャ図はこちらで確認できます

  • 最近大きな注目を集めた Typst とこのプロジェクトを比較すると面白そうですが、機能比較マトリクスに Typst がまったく言及されていないのは意外です

    • 以前見たときは、Typst は HTML に出力できませんでした
    • 今は Typst にも言及があります
      全体として、両プロジェクトは非常によく似ているように見えます
  • 比較チャートが正確なのか気になります – リンク
    LaTeX には明らかに完全なスクリプティング機能があると思います。もちろん使うのはつらいですが
    Quarkdown の難解な文法が Typst より簡潔で読みやすいという主張には懐疑的です
    学習曲線も Typst より易しいとは思えません。ほぼ同じに見えます
    LaTeX も tex4ht で HTML を作れると思います

    • 正直、たいていの Markdown は Quarkdown でもそのまま使えます
      これ以上参入障壁を下げるのは無理でしょう
      もちろん学習曲線と参入障壁は同じ意味ではありませんが、かなり重なっています
      そして「学習曲線」は主観的な特性です
      比較表に入れた時点で、最初から歪むしかありません
      明確な機能の方がより客観的ですが、製品の性質上、ある機能が不要な場合もあります
    • こういうユースケースには Pandoc が最高です
    • TikZ と pgf を見れば、LaTeX と TeX のスクリプティング機能がどの程度かはすぐ分かります
      比較表は明らかに不正確です
  • サンプル出力は見栄えがします
    ただ、テンプレート言語が関数呼び出しや複雑さで膨らんでいくのは、私はあまり好きではありません
    もちろんこの文脈では意味があるのかもしれませんが
    もし別の言語と一緒に使わなければならないなら、たとえばサーバーサイドレンダリングやデータ駆動の文書生成などでは、2つの言語を行き来するのに時間を使いすぎてしまいます
    テンプレート言語は常に「本物の」言語ほど強力ではありません
    だから私は JSX や JavaScript の tagged template literal のような方式を好みます
    実際のプログラミング言語を使いながら、文書のコンテキストを理解していればエスケープ(XSS のようなもの)の心配を減らせるやり方の方が良いです

  • Quarto とこのプロジェクトはどう違うのでしょうか
    名前も似ていて、拡張子も同じで、目指している方向も似ていますが、機能はむしろ少なく見えます – Quarto

    • Quarto は R Markdown エコシステムの事実上の後継です
      同じ開発者たちが作ったとFAQに書かれています
    • 私も同じ質問をしようと思っていました
      数日前、友人がすべての講義原稿を Quarto で書き直し、プレゼンテーションまで埋め込んでいるのを見せてくれましたが、かなりきれいに見えました
      Quarto が R Studio や Jupyter Notebook ともうまく連携する点は大きな強みです
    • 名前が似ているのは、QuarkXPress への言及や連想から来ているようです
      こういうのは収斂進化のような現象だと思います
  • 「planet」のように見えるものが、実はクォーク、特にダウンクォークだという説明は興味深いです
    クールなプロジェクトですが、QuarkXPress という出版業界の有名ブランドがあるので、「Quark」という単語を出版システムの名称に使うのは少し危ういです
    関連する商標登録情報はこちらこちらで確認できます
    (なぜ同じ単語で2つの商標が登録されているのかも気になります)

  • この分野の議論スレッドでは、いつも「なんで LaTeX を使わないの?」系のコメントが 70% を占めるので、まず最初に私の立場をはっきりさせておくと
    私は確実にモダンな Markdown ベースの組版システムが必要だと思っています
    LaTeX を置き換えるさまざまな試みがもっとあってほしいです
    LaTeX は本当に不便で古いやり方ですし、マークアップをもっと自由に書けるシステムがあってほしいです
    たとえ機能が増えて文法が長くなるとしても、Markdown より少し強力な領域は確実に必要です
    でもこのプロジェクトは、私が探していたものではない気がします
    例を見る限り、単なる Markdown より少し強力な方向に寄っているだけで、完全な LaTeX(あるいは Typst)の代替としては物足りません
    この種の文書システムは「本当に滑らかに」使えなければならないのに、これはそういう感じがしません

    1. しかも JVM ベースなので、私はインストールすらしたくありません
      こういう点は普及性の面でよくありません
    2. 文法も気に入りません
      できるだけノーマルな Markdown と互換であってほしいのですが、関数引数のインデントが必須なので、文書全体がインデントされることになりそうですし、実際 Markdown の拡張ポイントとしては、一般にコードブロック(```plugin-name` のような形)の方が自然です
      文法の違いのせいで、文書全体の構造を変えなければならないかもしれません
    3. 「より良い Markdown」というコンセプトは、個人メモから始まって徐々に公開文書へ発展する場合の方が向いていると思います
      文書を出版目的で作るのなら、LaTeX でそのまま作業すればいいでしょう
      一番役に立つのは、ノートテイキングアプリにうまく統合されているときです
      Emacs や Vim を使う人もいるでしょうが、私のようなレトロ派でさえ結局 Obsidian などに移ったと白状します
      文書構造をメモアプリでよりよく制御したり、公開機能にもつなげられる部分が良さそうです
      スタンドアロンなら、なぜ使うべきなのか疑問です
      せめて Typst にはオンラインエディタがありますし、みんなそれを使っています
    • LaTeX は時代遅れのガラクタではなく、最高のソフトウェアの1つです
      文書に余計なものを加えないことが重要です
  • この手のシステム(Typst を含む)は、基本的に論文のような長文テキストの組版のためのものです
    HTML の代替になってほしいのですが、Typst も使ってみたものの、作者たちはほとんど「論文や長文」にしか関心がないように感じます
    フォーム、請求書、チラシ、名刺のようなものも作りたいのですが、そういう要素は関心の外にあります
    (実際には Sile のことを考えていたのですが、Typst も似ています)
    Typst は商用だと思って、深くは使っていませんでした

    • 挙げられたフォームや請求書などで Typst を使えない特別な理由があるのかは分かりません
      特にインタラクティブフォームについては、すでに作業中だという話もありますし(pdf writer のバックエンドではすでに一部サポート済み)、
      しばらくすれば Typst にフォーム機能が実装されそうです – イシューを参照
    • この分野が「組版」よりは「グラフィックデザイン」に近いからだと思います
      請求書や広告、名刺などは、小さな要素をページ中央や端に正確に配置しなければなりませんが、これは WYSIWYG ツールの方が向いています
      テキストベースの組版だけでは試行錯誤が多くなりすぎます
      たとえばタブロイドでは、テキストが長方形ではない画像や切り抜きに合わせて流れたり回り込んだりする必要がありますが、実際に目で確認せず座標だけ書いて作業するのは非常に大変です
    • Typst のオンラインエディタは商用ですが、Typst 自体は Apache 2.0 ライセンスで公開されています
      私は Rust で cargo 経由でインストールして、オンラインエディタなしで十分使っています
    • Typst はローカルでも使えますし、商用の部分を完全に無視しても構いません
      さまざまな種類の文書を作るのにかなり簡単です
      私はすでにスライドや配布資料の作成に代替として使っています
    • 私の Typst の最初の「実用」案件はポスターでしたが、LaTeX よりずっと簡単でした
      画像の回り込みやテキストフローなど、まだいくつか機能はありませんが、TeX でもこれは難しく、Typst にも今後追加予定です
      ポスターの例
  • これは reStructuredText(rST) とほとんど同じに見えます
    Quarkdown の関数構文(.somefunction {引数} {引数} 本文)と rST の関数構文(.. somefunction:: {引数} {引数} 本文)は非常によく似ています

  • Markdown、Quarkdown、Typst などが多すぎて標準化もされていないように見えるので、結局 HTML+CSS に戻っています

    • XML はどうでしょう?
      実際に書いたことはありませんが、かなり真剣に検討しています
      ほかのフォーマットは複雑で学習曲線があり、文章を書くこと自体を妨げます
      XML なら自分でタグを自由に定義できて、パーサーで脚注の自動生成などさまざまな構造を作れます
      こういうアプローチを使ったことがある人がいるのか気になります
    • Markdown は基本レベルでは本当に効率的です
      問題は、あまりに多くの人がその上にシステムを積み重ねて、そもそも「もっと複雑なもの」を解決しようとし始めるときに起きます
      もともと単純な用途向けのシステムを自分なりに改善しているつもりで、実際には限界を理解できておらず、かえって不要な繰り返しと混乱を増やしているだけだと思います
      機能不足なのではなく、設計目的に合った範囲を超えていることが問題です
      たとえ Windows の notepad に書式機能が入ったとしても、本質的には改善ではないと思います
      notepad には本来の役割があったからです
    • 成熟して信頼できる Org-mode もあります
      Emacs が嫌いでなければ良い選択です
    • 私も、HTML、CSS、Javascript で Web 開発の DOM 操作をする方がむしろ楽しいと感じます
      何百ものフレームワークや複雑な文法をそれだけ覚える必要はありません
      AI に markdown to html 変換器を生成するよう命じるだけでも十分です
    • もし 2005 年のテキストエディタのオートコンプリートが、タグのバランスやインデント、ハイライトを今のようにちゃんとサポートしていたなら、JSON、YAML、Markdown のようなフォーマットはここまで流行らなかったかもしれません
      2003 年の The Art of Unix Programming にも、XML を直接編集するのは苦痛なので各種フォーマットやパーサーを新しく作る必要があった、という話が出てきます