脚注は、ラベルで互いを見つける2つの半身でできています。本文の中の印と、文書のどこか別の場所にある定義です。処理系が定義を集め、印が現れた順に番号を振り、戻るリンクを付けてページの下にまとめます。

ひとつ断っておくと、これは拡張であって、元のMarkdownの一部ではありません。だから対応状況にばらつきがあります。下のプレビューは脚注をそのままの文字として表示します。それはまさに、対応していない処理系で見えるものです。一度見ておく価値があります。

脚注 — 印と定義
Markdown
Markdownは2004年に生まれました。[^1] 素のテキストのまま
読めるように設計されています。[^design]

[^1]: John Gruberによる。Aaron Swartzの協力を得ています。
[^design]: 「Markdownの文書は、そのままの姿で、素のテキストとして
    公開できるものであるべきだ」
Preview

Markdownは2004年に生まれました。[^1] 素のテキストのまま 読めるように設計されています。[^design]

[^1]: John Gruberによる。Aaron Swartzの協力を得ています。 [^design]: 「Markdownの文書は、そのままの姿で、素のテキストとして 公開できるものであるべきだ」

記法

Markdown
出典が要る主張。[^1]

[^1]: その出典。
Preview

出典が要る主張。^1

  • 印は [^ラベル] で、番号を出したい場所に書きます。
  • 定義は [^ラベル]: 文章 で、独立した行に書きます。
  • ラベルは番号ではありません。 [^gruber] はまったく正しく、文書の最初の脚注なら 1 として表示されます。単語を使ってください。並べ替えても生き残ります。[^1][^2][^3] は、ひとつ差し込んだ瞬間に振り直しが要ります。

定義はどこに置いてもかまいません。末尾に集めるのが慣習ですが、長い文書では参照している段落のすぐ下に置くほうがずっと手入れしやすくなります。出力はどちらでも同じです。

複数段落の脚注

続きの段落を半角スペース4つ下げます。

Markdown
ここが主張です。[^long]

[^long]: 注の1つめの段落。

    2つめの段落。半角スペース4つ下げます。
Preview

ここが主張です。^long

2つめの段落。半角スペース4つ下げます。

脚注が効く場所

CommonMarkには入っていないので、これは互換性の問題です。

  • 対応:たいていの静的サイトジェネレータ、たいていのメモアプリとMarkdownエディタ、pandoc、そしてPDFやEPUBに書き出す道具の大半。
  • 非対応:リポジトリのファイル表示で描かれるGitHubの .md は、歴史的には無視していました。いまはGitHubもたいていの文脈で対応しています。最小限の処理系や、Web上の多くのプレビュー部品は、いまも対応していません。

対応していない相手では、印は本文に [^1] という文字のまま出て、定義はふつうの段落になります。目に見えて、みっともなくはありますが、壊れはしません。

脚注が向かない場面

脚注は長い文章に向いています。論文、エッセイ、出典つきのドキュメント。READMEには向きません。注が短くて直接役に立つなら、ページの下まで行って戻らせるより、その場のかっこ書きのほうが読みやすいものです。

良い試し方があります。読者がその注を読まないと話を追えないなら、それは脚注ではありません。文の中に入るべきものです。

持ち運べる代替案

脚注が使えない場所では、末尾の節とアンカーリンクが、普遍的な記法で同じ仕事をします。

Markdown
ある主張。[<sup>1</sup>](#note-1)

## 注

<a id="note-1"></a>1. その出典。
Preview

ある主張。<sup>1</sup>

<a id=“note-1”></a>1. その出典。

アンカーのために生のHTMLが要り、手間も増えます。相手に脚注がないと分かっているときだけ使ってください。

よくある間違い

一度も参照されない脚注を定義する。 たいていの処理系は黙って落とします。あなたの注は、警告もなく出力から消えます。

定義のないラベルを参照する。 印が [^1] という文字のまま出ます。

手で番号を振る。 ラベルは番号ではありません。単語を使って、数えるのは処理系に任せてください。

続きを空白2つ下げる。 脚注の続きは4つ必要です。リスト項目とは違います。

どこでも動くと思い込む。 50個書く前に、出力先を確かめてください。

よくある質問

脚注を入れるには?

印を出したい場所に [^ラベル] を置き、文書のどこかの独立した行に [^ラベル]: 注の文章 を書きます。処理系が印を現れた順に番号付けし、注を下に集めます。

脚注のラベルは数字でないといけませんか?

いいえ。むしろ数字でないほうがいいです。[^gruber] は動き、その位置にふさわしい番号で表示されます。単語のラベルは並べ替えても生き残り、数字のラベルは手で振り直すことになります。

GitHubで脚注は使えますか?

いまはたいていの文脈で使えます。ただし歴史的にはリポジトリのファイル表示では無視されていましたし、最小限の処理系の多くはいまも対応していません。対応がない場所では、印が [^1] という文字のまま出ます。

複数段落の脚注を書くには?

定義の下で、続きの段落をそれぞれ半角スペース4つ下げます。そこまで下がっているものは、その脚注に属します。

脚注は標準のMarkdownの一部ですか?

いいえ。拡張です。2004年の元の記法にもCommonMarkにも入っていませんが、静的サイトジェネレータ、エディタ、文書変換ツールで広く実装されています。