Markdownの歴史

Markdown公式ロゴ

ロゴ作成 Dustin Curtis パブリックドメイン

Markdownとは?

Markdownは、シンプルなテキストフォーマット構文を持つ軽量マークアップ言語です。主な目的は、元の形式(ソースコード)で「人間が読める」ものであり、有効なHTMLに簡単に変換できることです。2004年のリリース以来、ライター、開発者、ウェブコンテンツクリエイターにとってのデファクトスタンダードとなりました。

Markdownは2つのものです:(1)シンプルなテキストフォーマット構文、(2)このフォーマットをHTMLに変換するソフトウェアツール(元々はPerlで書かれました)。

起源と動機(2004年以前)

Markdown以前、ウェブ向けの執筆にはHTML(HyperText Markup Language)の知識か、しばしば重くて保守が難しいコードを生成するWYSIWYG(「What You See Is What You Get」)エディタの使用が必要でした。

TextilereStructuredTextなどの他の軽量マークアップ言語がありましたが、多くはまだコンピュータコードのように見えたり、複雑なタグが必要でした。Markdownのインスピレーションは、プレーンテキストメールで使用されるフォーマットというシンプルなソースから来ました。

インターネットの初期、ユーザーはすでにメールをフォーマットするための直感的な規則を使用していました:強調のための*アスタリスク*、引用のための>記号、リストのためのダッシュ。これらの自然な規則がMarkdown構文の基礎となりました。

誕生(2004年)

Markdownは、フィラデルフィア出身のテクノロジーブロガー、UIデザイナーであり、人気ブログDaring Fireballの創設者であるJohn Gruber(1973年生まれ)によって作成されました。天才プログラマーでインターネット活動家のAaron Swartz(1986-2013)の重要な貢献がありました。

Gruberはオリジナルのアイデアを持ち、マークされたテキストをHTMLに変換する最初のPerlスクリプトを書きました。彼の哲学は明確でした:マークされた文書はそのまま、プレーンテキストとして公開できるべきであり、タグやフォーマット指示で埋められているように見えるべきではないということです。

Aaron SwartzはGruberと一緒に構文に取り組みました。Swartzはすでにatx(別のマークアップ言語)を作成しており、#を使用した見出し構文の作成に影響を与え、HTMLからテキストへの変換ルールの改善を手伝いました。

バージョン1.0.1は2004年12月17日にBSDオープンソースライセンスの下で公開されました。

「Markdownのフォーマット構文の最優先設計目標は、できるだけ読みやすくすることです。アイデアは、Markdownでフォーマットされた文書がそのまま、プレーンテキストとして公開できるべきであり、タグやフォーマット指示でマークアップされているように見えるべきではないということです。」
John Gruber, Daring Fireball

創設者たち

John Gruber

John Gruber

Markdownの創設者

1973年フィラデルフィア生まれのテクノロジーブロガー、UIデザイナー。Apple製品に焦点を当てた最も影響力のあるテクノロジーブログの一つであるDaring Fireballの創設者。The Talk Showポッドキャストも主催。Drexel大学でコンピュータサイエンスの学士号を取得。

写真提供 Randy Stewart Wikimedia Commons CC BY-SA 3.0

Aaron Swartz

Aaron Swartz

Markdown共同創設者(1986-2013)

天才プログラマー、起業家、ライター、インターネット活動家。14歳でRSS 1.0を共同執筆。Creative Commonsの初期アーキテクトの一人、Open Libraryの開発者、Redditの共同創設者。2013年にInternet Hall of Fameに殿堂入り。

写真: Wikimedia Commons CC BY-SA 3.0

「Aaron Swartzは、Markdownのフォーマット構文のデザインに関するフィードバックに対して、莫大な称賛に値します。Markdownは、Aaronのアイデア、フィードバック、テストのおかげでずっと良くなりました。」
— John Gruber

断片化:西部開拓時代(2005-2012)

GruberのオリジナルのPerlスクリプトには曖昧さがあり、すべてのユースケース(テーブルや数学的定義など)をカバーしていなかったため、コミュニティはPythonRubyPHPJavaScriptなどの他の言語で独自の実装を作成し始めました。

これが断片化につながりました。開発者はオリジナルの仕様には存在しなかった追加機能を追加しました。いわゆるMarkdownの「フレーバー」が登場しました:

MultiMarkdown(2005)— Fletcher Penneyによって作成され、テーブル、脚注、メタデータ、LaTeXエクスポートのサポートを追加。

PHP Markdown Extra — PHPベースのCMS(WordPressDrupalなど)向けの人気バージョン、Michel Fortinによって作成。

GitHub Flavored Markdown(GFM) — おそらく最も影響力のあるバリアント。GitHubはREADME.mdファイル、コメント、issueにMarkdownを採用し、フェンスドコードブロックのシンタックスハイライト、タスクリスト、テーブルを追加しました。GitHubの人気がMarkdownを開発者に不可欠なツールとして確立しました。

タイムライン

2004

オリジナルリリース

John Gruberが12月17日にDaring FireballブログでMarkdown 1.0.1を公開。変換用のPerlスクリプトとMovable Type、Blosxom、BBEditの初期サポートを含む。

2004

PHP Markdown

Michel FortinがMarkdownをPHPに移植し、最初の代替実装の一つを作成。後にPHP Markdown Extraでテーブルや脚注などの拡張を追加。

2008

GitHubがMarkdownを採用

GitHubがREADMEとドキュメントにMarkdownの使用を開始し、世界中の開発者の間で構文を大きく普及させる。

2012

GitHub Flavored Markdown(GFM)

GitHubがSundownパーサーに基づいた独自の拡張を作成し、テーブル、シンタックスハイライト、タスクリスト、オートリンクを追加。

2012

標準化の開始

多くの異なる「フレーバー」があったため、Markdown文書は使用するサイトやアプリによって異なるレンダリングになる可能性がありました。これはStack ExchangeやGitHubなどの企業を悩ませました。Jeff Atwood(Stack Overflow共同創設者)とJohn MacFarlaneが厳格な標準仕様の作成に着手。

2014

CommonMark

当初「Standard Markdown」と呼ばれていたこのプロジェクトは、自分のMarkdownが標準であり、第三者が名前を流用することを望まないと主張したJohn Gruberの反対に直面しました。論争の後、CommonMarkに改名されました。この仕様は、Markdownがどのシステムでも同じように動作することを保証するテストスイートを提供します。

2016

IETF登録

IETFがRFC 7763とRFC 7764を公開し、メディアタイプtext/markdownを正式に登録。

2017

CommonMarkベースのGFM

GitHubがSundownを廃止し、cmarkライブラリを使用したCommonMarkベースの正式なGitHub Flavored Markdown仕様をリリース。

普遍的な標準

普遍的な標準

ファイル拡張子:.mdと.markdown。Stack Overflow、Reddit、Discord、Notion、Obsidianを含む数百万のサイトで使用。

現在の状態

今日、Markdownはプログラミングの世界を超え、デジタル文化においてどこにでも存在します。主な使用領域は以下の通りです:

技術文書 — 業界標準です。Microsoft Learn、Google Cloud Docs、GitHub文書などのサイトはMarkdownで書かれています。

静的サイトジェネレーター(SSG)— Jekyll、Hugo、Gatsbyなどのツールは、Markdownファイルを使用してサイト全体を生成します。

ノートと生産性 — Obsidian、Notion、Roam Research、Logseqなどの「セカンドブレイン」アプリの新しい波は、データストレージにMarkdownを使用し、ユーザーがプロプライエタリフォーマットに縛られないことを保証します。

データサイエンス — データサイエンティスト(Python/R)に不可欠なツールであるJupyter Notebooksは、コードを説明し結果を提示するためにMarkdownセルを使用します。

メッセンジャー — Slack、Discord、WhatsApp、TelegramはメッセージフォーマットのためのMarkdownサブセットをサポートしています。

未来と遺産

Markdownは回復力のある技術であることが証明されました。時間とともに変化し壊れるプロプライエタリフォーマット(.docなど)とは異なり、2004年に書かれたMarkdownファイルは今日でも人間やコンピュータにとって完璧に読むことができます。

現在のトレンドは、MDXのような「拡張Markdown」を指しています。これにより、Markdown内でReactコンポーネントを使用でき、書くシンプルさとモダンウェブのインタラクティブ性を融合させます。

「Markdownはウェブパブリッシングを民主化し、ライターがデザインを気にせずコンテンツに集中できるようにし、開発者が複雑なワードプロセッサの重さなしに美しく機能的なドキュメントを作成できるようにしました。」

遺産は続く

誕生から20年以上経った今、Markdownはどこにでも存在します。GruberとSwartzが求めたシンプルさは現実となりました:毎日何百万人もの人々がMarkdownで書いており、多くの場合マークアップ言語を使用していることさえ知りません。

オープンでアクセス可能なインターネットというAaron Swartzのビジョンは、Markdownの精神の中で生き続けています:ウェブのためのコンテンツ作成を民主化する無料でシンプルなツール。社会正義と情報への自由なアクセスへの彼のコミットメントは、私たちがオンラインで知識を共有する方法に深く影響を与えました。

オリジナルのMarkdown.plスクリプトは2004年以降更新されていませんが、その遺産はCからJavaScript、PythonからGoまで、事実上すべてのプログラミング言語で数百の実装の中で生き続けています。

参考資料と公式リンク