Markdown方言の全体像
本記事を書こうと思ったきっかけ
Markdownの記法について調べようとして、いわゆる「記法一覧」記事を参考にすることがある。しかし、それらの多くはどのMarkdown方言を前提にしているのかが明記されておらず、いざ自分の使っている環境で試すと、思ったように表示されない、ということが何度かあった。
おそらく、記事を書いた側も「方言があること」を十分に認識しておらず、自分の使っているツールの仕様を“Markdownの標準”だと誤解しているのかもしれない。
こうした経験から、Markdownには複数の方言があり、それぞれに対応する記法と環境があることを整理し直したいと考え、このシリーズを書くことにした。
はじめに
Markdownは「軽量マークアップ言語」として広く使われており、シンプルな記法で文書を整形できることから、ブログ・技術文書・ドキュメント・ノートアプリなどで広く採用されている。しかし、Markdownには正式な標準が長らく存在せず、上述の通り、各ツール・サービスごとに**微妙に異なる記法の“方言(ダイアレクト)”**が存在している。
なぜ方言が生まれたのか
- Markdownには元々厳密な仕様がなかった(2004年にJohn Gruberが提案したが、仕様書は曖昧)
- ツールやWebサービスが独自に拡張して便利機能を追加(例:チェックリスト、表、脚注など)
- この結果、「どのMarkdown環境で、何が書けるのか」が分かりにくくなった
代表的なMarkdown方言と特徴
方言名 | 主な特徴 |
---|---|
CommonMark | Markdownの厳密仕様を定義した“標準化”プロジェクト。拡張なし。 |
GFM(GitHub Flavored Markdown) | CommonMarkベースに表・チェックボックス・打ち消し線などの拡張あり |
Obsidian Markdown | CommonMarkベース+内部リンク、脚注、YAML frontmatter等の拡張 |
Pandoc Markdown | 脚注、数式、フィルターなど高機能・LaTeX出力向け |
比較の一例:CommonMark vs GitHub Flavored Markdown
以下がCommonMarkとGitHub Flavored Markdownを比較した結果のスクリーンショットだ。
なお、この検証用に作成した比較ツールは、以下記事で公開している。
違いが生じた箇所を表にまとめると、以下になる。
表現 | CommonMark | GitHub Flavored Markdown |
---|---|---|
チェックボックス | ❌ 表示されない | ✅ <input type="checkbox"> に変換される |
表 | ❌ 表示されない | ✅ <table> として表示 |
打ち消し線 | ❌ ~~text~~ は無視 |
✅ <del> タグとして解釈 |
このように、書いたMarkdownがどの環境でどう見えるかは“方言”に依存している。
各アプリの採用方言まとめ
アプリ・サービス | 採用方言 | 備考 |
---|---|---|
GitHub | GFM | 表、チェックボックス、打ち消し線に対応 |
Obsidian | Obsidian独自 | 脚注、内部リンク、YAML frontmatterなど拡張多数 |
Typora | Pandoc風 | 数式・脚注・LaTeX出力に強い |
Zenn | GFMベース+独自 | @[toc] やKaTeX数式サポートなど |
Qiita | GFMベース+拡張 | TOC・絵文字・Mermaid対応など独自性あり |
StackEdit | GFM互換+MathJax | 表示力が高いWebエディタ |
今後の記事構成
本記事は概要まとめとして、次の各記事で以下の方言を詳しく紹介していく予定だ。
- Part 2: Markdown方言のCommonMark
- Part 3: GitHub Flavored Markdown(GFM)の仕様
- Part 4: Obsidian Markdownの仕様
それぞれ、実際に同じMarkdown文を複数方言でレンダリングしたスクリーンショットを添えて、どこがどう違うのかを明確に示す。