概要
- Pandoc は2006年8月3日にJohn MacFarlaneによって初公開
- Haskell で開発され、文書変換ツールとして多様なフォーマットに対応
- 20年超 で200回以上のリリースと世界的な普及
- 多数の 貢献者 と拡張機能により進化
- 学術・技術分野 での標準的なツールとして定着
Pandoc誕生と初期の歩み
- 2006年8月3日、John MacFarlaneが自身のウェブサイトで Pandoc 0.1 をGPLライセンスで公開
- 約3000行のHaskellコード で構成、依存関係はGHC標準ライブラリのみ
- Markdown、reStructuredText、HTML、LaTeX から各フォーマットおよびRTFやS5への変換機能
- 最初は個人的な学術用途 とHaskell学習のためのプロジェクトとして開始
- プロジェクト管理・バグ修正・機能追加 に膨大な時間を費やすことに
Pandocの開発動機とHaskell選択理由
- Haskell に興味を持ち、学習目的で何かを書こうと考えたことが出発点
- Markdownパーサ の実装に着手、従来の正規表現変換方式とは異なる AST(抽象構文木)生成アプローチ を採用
- 拡張性・信頼性 の高い設計
- N個のリーダー(パーサ)とM個のライター(レンダラー) でN×Mの変換パターンを実現
- reStructuredTextリーダー や LaTeXライター など機能を次々追加し、プロジェクトが拡大
初期リリースとコミュニティとの出会い(2006–2008)
- 初公開後、ほとんど宣伝せず、友人2名にメールを送っただけ
- Turkish開発者Recai Oktaş との出会いにより Debianパッケージ化、プロジェクトの可視性向上
- 2007年、DocBookライターやMarkdown拡張(脚注・表・定義リスト等) を追加
- Hackage (Haskellパッケージリポジトリ)公開により依存パッケージの活用が容易に
Pandoc 1系の進化(2008–2017)
- 2008年Pandoc 1.0リリース、MediaWikiやODT、コードブロック自動ハイライト等を追加
- zip-archiveやhighlighting-kate など必要なHaskellライブラリを自作
- CSLスタイルによる自動引用・文献リスト生成 機能
- Markdown拡張仕様の策定 や、他実装者との協働
- 柔軟なテンプレートシステム や EPUB/Org-mode/Textile 等多様なフォーマット対応
- JSONフィルタやLuaカスタムライター による拡張性強化
- commonmarkプロジェクト への参画とMarkdown仕様の明確化
- Pandoc 1.14でcommonmark対応、以降も多様な拡張と新機能を追加
Pandoc 2系と現代への発展(2017–2023)
- Pandoc 2.0(2017年)で大規模なアーキテクチャ刷新
- 従来の純粋関数型パーサ/レンダラーから、I/Oを伴う形式へ拡張
- 画像やファイルインクルード等、より複雑な文書変換要件 に対応
- 多国籍・多分野の貢献者 によるコラボレーション
- 学術執筆ツール(Quarto、Jupyter Notebook等)との統合
- 世界中の何百万台ものPCにインストール、事実上の業界標準ツールへ発展
Pandoc成功の要因と今後
- Haskellの特性 を活かした堅牢かつ拡張性の高い設計
- オープンソースコミュニティ の活発な貢献
- 学術・技術文書の多様なニーズ に柔軟に対応
- 今後も新フォーマット・新機能への対応 と、ユーザー・開発者コミュニティのさらなる発展が期待