How to Add Footnotes in Markdown
Add a footnote in Markdown with a caret reference in the text — [^1] — and a matching definition anywhere in the document: [^1]: The footnote text. Renderers turn the reference into a superscript link and collect all definitions at the bottom of the page.
Platform Support
Footnotes are an extended syntax (popularized by PHP Markdown Extra and adopted by GFM in 2021), so support is good on document-oriented platforms and absent in chat apps. The label after the caret does not have to be a number: [^note], [^source-2], and [^citation] all work, and descriptive labels are easier to maintain in long documents. Whatever you write, the renderer replaces labels with sequential numbers in reading order — the labels are for you, the numbering is automatic.
Definitions can live anywhere in the file; the renderer moves them to a footnotes section at the end regardless of where you define them. Keeping each definition near the paragraph that references it makes the source easier to edit, while collecting them all at the bottom mirrors the rendered output — both styles are common. Each rendered footnote gets a back-link (usually a small arrow) returning the reader to the reference point, and you can reference the same footnote label from multiple places in the text.
Multi-paragraph footnotes work by indenting continuation content four spaces under the definition. That indented content can include lists and code blocks, though keeping footnotes short is kinder to readers — if a note grows past a couple of sentences, it probably belongs in the main text or an appendix section. One syntax constraint: the definition must start at the beginning of a line ([^1]: text), and there is no space between the brackets and the colon.
Where footnotes are unsupported — Discord, Slack, Notion, and many lightweight renderers — the syntax degrades poorly: readers see raw [^1] markers and an orphaned definition line. If a document needs to travel to those platforms, fall back to manual notes (superscript numbers via HTML where allowed, or simple parenthetical asides) or restructure to avoid notes entirely.
Examples
The benchmark ran on commodity hardware.[^setup]
[^setup]: Apple M3, 16 GB RAM, macOS 15, Node 22.Labels can be words — the renderer numbers them automatically in reading order.
Common Mistakes
[^1] : Footnote with a space before the colon[^1]: Footnote textThe colon must directly follow the closing bracket. A space in between stops the line from being parsed as a definition.
A reference [^2] with no matching definitionEvery [^label] needs a [^label]: definition lineOrphaned references render as literal [^2] text. Each reference label must have a definition somewhere in the document.
Continuation paragraph not indented under the definitionIndent additional footnote paragraphs four spacesUnindented text after a definition is normal body text — only indented content stays inside the footnote.
Platform Notes
GitHub
Supported in READMEs, issues, and discussions since 2021. Footnotes render at the bottom with automatic numbering and back-links.
Obsidian
Full support, including inline footnotes with the ^[inline note text] shorthand that needs no separate definition.
Notion
No footnote support — the syntax renders literally. Workarounds include toggle blocks or superscript text.
Discord
Not supported; [^1] appears as plain text in messages.
Frequently Asked Questions
How do I add a footnote in Markdown?
Place [^1] where the reference should appear and add a definition line anywhere in the document: [^1]: The footnote text. The renderer numbers and collects footnotes automatically.
Do footnote labels have to be numbers?
No — [^note] or [^source] work fine. Renderers replace labels with sequential numbers in reading order, so descriptive labels cost nothing and are easier to maintain.
Where should I put footnote definitions?
Anywhere — the renderer always displays them at the bottom of the document. Defining each footnote near its reference keeps editing easy; grouping them at the end mirrors the output.
Why are my footnotes showing as plain [^1] text?
The platform does not support the footnote extension (Notion, Discord, and Slack do not), or your static site generator needs the footnotes plugin enabled in its Markdown parser.
Can a footnote contain multiple paragraphs or code?
Yes — indent the continuation content four spaces under the definition line. Lists and code blocks work inside footnotes on platforms with full support.
Related Syntax
Links
Learn how to create links in Markdown: inline links, reference links, autolinks, and titles.
Blockquotes
Learn how to create blockquotes in Markdown with the > character, including multi-paragraph quotes, nested quotes, callouts/admonitions, and lazy continuation rules.
Headings
Learn how to create headings in Markdown with # symbols (ATX) or underlines (setext).
Related Tools
Markdown Cheat Sheet
Complete Markdown syntax reference with interactive examples
Online Markdown Editor
Write Markdown with a formatting toolbar, local autosave, callouts, math, diagrams, file open, and live preview
Obsidian Markdown Cheat Sheet
Obsidian-specific Markdown syntax including wikilinks and callouts