Markdownはいまやどこにでもあります。コードのリポジトリ、メモアプリ、チャットツール、静的サイトジェネレータ、そしてInkiostroのような書くためのアプリ。けれども始まりは、ウェブに文章を書くという行為をもう一度自然なものにしたい、というひとりの試みでした。これは、Markdownがどう生まれ、どう標準になっていったかの短い話です。
2004年:GruberとSwartz
Markdownは2004年、書き手であり開発者でもあるJohn Gruberが作りました。記法にはプログラマーで活動家のAaron Swartzが大きく関わっています。当時、ウェブに文章を載せるとは、生のHTMLを打つことでした。段落はひとつずつ <p> で包み、リンクは <a href> で包む。手間がかかり、しかもソースが読めなくなりました。
Gruberの狙いは、最初の仕様書にはっきり書かれています。Markdownの文書は、タグや書式の指示を書き込んだようには見えないまま、プレーンテキストとしてそのまま公開できるものであるべきだ、と。つまり主眼は読めることでした。記法は、人々がプレーンテキストのメールですでに使っていた習慣を借りています。強調にアスタリスク、引用に >。だから技術的というより、見慣れたものに感じられました。
記法と一緒に、Gruberは**Markdown.pl** も公開しました。MarkdownのテキストをHTMLに変換するPerlのスクリプトです。この記法とこの参照実装が、その後何年ものあいだ、Markdownとは何かを定義していました。
なぜ広まったのか
Markdownは本物の問題を、うまいやり方で解きました。そして自分の力で広がりました。
- 簡単だった。 基本なら誰でも数分で覚えられます。
- 読めた。 生のテキストのままでも整って見えるので、描画されない場所でも役に立ちました。
- ただのテキストだった。 持ち運べて、小さく、バージョン管理とも、開発者がすでに使っていた道具とも相性がよい。
ブログ、Wiki、フォーラムが採用しました。次に開発者向けのプラットフォームが続きます。いちばん影響が大きかったのはGitHubで、READMEにもissueにもコメントにもMarkdownを使い、毎日何百万人ものプログラマーの目の前に置きました。
曖昧さという問題
Gruberの最初の説明は形式ばらないもので、際どい場合が決められないまま残りました。引用の中にリストを入れ子にしたらどうなるのか。強調の記号を変わった形で混ぜたらどうなるのか。実装ごとに判断が違い、同じMarkdownが道具によって別の見た目になりました。Markdownの人気が跳ね上がるにつれ、この食い違いは実際の頭痛の種になりました。
2014年:CommonMark
これを直そうとしたのが、Jeff Atwood(Stack Overflowの共同創業者)とJohn MacFarlane(文書変換ツールPandocの作者)を含むグループでした。厳密で曖昧さのない仕様を書こうというのです。2014年に出たその成果がCommonMarkです。記法の正確な定義と、網羅的なテスト一式からなり、仕様に従う処理系ならどれも同じ入力を同じように描画します。いまどきのMarkdownツールは、たいていCommonMarkに従っています。
GitHub Flavored Markdown、そのあと
CommonMarkの上に、GitHub Flavored Markdown(GFM) が実用的な拡張を重ねました。表、チェックリストのチェックボックス、取り消し線、URLの自動リンク。人々が欲しがっていたものです。GFMはこうして、いまほとんどのエディタが対応する事実上の拡張方言になりました。
さらに先へ進んだ道具もあります。数式のためのLaTeX、そしてプレーンテキストから描かれるMermaidの図。MacのInkiostroを含め、今どきのエディタにはこうした機能があります。それぞれMarkdownの数式とMarkdownの図のページにまとめてあります。
いまのMarkdown
20年たって、MarkdownはまさにGruberが望んだことをやってのけました。書式のある文章を書くことが、プログラミングではなく、書くことのままでいられるようになったのです。いまではドキュメント、技術文書、メモ、そして数えきれない出版の仕組みの母語になっています。素朴な思いつきが、いつのまにかインフラになった珍しい例です。
Markdownで書いてみたくなったら、Markdownガイドから始めて、Markdownとは何か、なぜ学ぶ価値があるのかも読んでみてください。
よくある質問
Markdownを作ったのは誰ですか?
2004年にJohn Gruberが作りました。記法にはAaron Swartzが大きく関わっています。最初の変換スクリプト Markdown.pl もGruberが書きました。
Markdownはいつ生まれましたか?
最初の公開は2004年です。記法を標準化したCommonMarkの仕様は、その10年後の2014年に出ました。
MarkdownとCommonMarkの違いは?
Markdownは2004年の、形式ばらない形で定義された元の記法です。CommonMarkはその記法を厳密に規定した仕様で、曖昧さをなくして、どのエディタでも同じ入力が同じように描画されるように、2014年に作られました。
なぜ「Markdown」という名前なのですか?
「Markup(マークアップ)」をもじった名前です。HTMLのようなマークアップ言語は文章にタグを足します。Markdownが目指したのはその逆で、読めるままでいられるくらい軽く印を付けることでした。だからGruberはこれを「Markdown」と呼びました。
Markdownはいまも使われていますか?
とてもよく使われています。READMEにも、ドキュメントにも、静的サイトにも、メモアプリにも、チャットにも使われる標準形式で、今どきの書くための道具と開発の道具は、ほぼどれも対応しています。