Markdown

軽量マークアップ言語の一つ。プレーンテキストに簡易な記法で書式を付与し、HTML に変換できる。

Markdown は、プレーンテキストに簡易な記法で見出し、リスト、リンク、コードブロックなどの書式を付与できる軽量マークアップ言語です。2004 年に John Gruber と Aaron Swartz によって考案され、「書きやすく、読みやすく、HTML に変換しやすい」という設計思想のもとに作られました。名前は HTML (HyperText Markup Language) の「マークアップ」に対する「マークダウン」という言葉遊びに由来します。

Markdown の基本構文はシンプルです。# で見出し、*- でリスト、[テキスト](URL) でリンク、`コード` でインラインコード、``` でコードブロックを記述します。この簡潔さが最大の強みであり、HTML タグを直接書くよりも圧倒的に速く文書を作成できます。技術文書の書き方の書籍で Markdown の活用方法を学べます。

GitHub の README、技術ブログ、ドキュメントサイト (MkDocs、Docusaurus、VitePress)、チャットツール (Slack、Discord)、ノートアプリ (Notion、Obsidian) など、開発者向けのツールで広く採用されています。標準化仕様としては CommonMark と GitHub Flavored Markdown (GFM) が主流で、GFM はテーブル、タスクリスト、取り消し線などの拡張構文を追加しています。

Markdown の利点は、プレーンテキストとしても十分に読みやすく、特別なエディタがなくても編集できる点です。Git でのバージョン管理との相性も良く、差分の確認が容易です。一方、表や脚注、数式などの複雑な書式は方言によってサポート状況が異なり、互換性の問題が生じることがあります。また、Markdown 内に HTML を直接記述できるため、Markdown だけでは表現しきれないレイアウトも実現可能です。

よくある誤解として、Markdown は単一の仕様だと思われがちですが、実際には多数の方言 (フレーバー) が存在します。オリジナルの Markdown、CommonMark、GFM、MultiMarkdown、Pandoc Markdown などがあり、それぞれ拡張構文が異なります。プロジェクトで使用する際は、どの仕様に準拠するかを明確にしておくことが重要です。

文字数カウントの観点では、Markdown の記法文字 (#*[]() など) は表示時にはレンダリングされないため、ソースの文字数と表示上の文字数に差が生じます。たとえば **太字** はソースでは 6 文字ですが、表示上は「太字」の 2 文字です。文字数制限のあるプラットフォームに Markdown で下書きする場合は、レンダリング後の文字数を基準にする必要があります。ドキュメント作成の書籍も参考になります。