Markdown Footnotes: How to Add References and Citations
How to use footnotes in markdown for citations, references, and supplementary notes. Covers syntax, multi-paragraph footnotes, and platform support.
Last updated: February 27, 2026
Footnotes let you add references, citations, or supplementary information without cluttering the main text. The syntax uses [^label] in the text and [^label]: content for the definition. Footnotes are a GFM extension supported by GitHub, Obsidian, and most modern markdown processors.
Basic Syntax
Place the reference marker in your text and the definition anywhere in the document:
Markdown was created in 2004[^1].
[^1]: John Gruber published the original Markdown specification with Aaron Swartz.The renderer collects all footnote definitions and places them at the bottom of the document, regardless of where you write the definitions in the source. Each reference becomes a superscript number that links to the corresponding note.
Numeric vs Named Labels
Labels can be numbers or descriptive names:
<!-- Numeric -->This claim needs a source[^1].
[^1]: Source: https://example.com/research
<!-- Named -->This claim needs a source[^source].
[^source]: Source: https://example.com/researchBoth render identically. Named labels are easier to manage in long documents because you can identify them without counting.
Multi-Paragraph Footnotes
Indent continuation lines by four spaces to include multiple paragraphs in a single footnote:
Here is a complex claim[^detail].
[^detail]: The first paragraph of the footnote.
The second paragraph continues the same footnote. Everything indented by four spaces is included.
Even a third paragraph works.You can also include code blocks and lists in footnotes with proper indentation:
[^example]: This footnote includes a list:
- First item - Second item
And a code block:
const x = 42;Inline Footnotes
Some parsers (Pandoc, not GitHub) support inline footnote definitions:
Here is an inline footnote^[This is the footnote content, defined right here.].This is not part of GFM and does not work on GitHub, VS Code, or most web-based renderers. For portable documents, use the standard [^label] syntax.
When to Use Footnotes
Academic and research writing:
Studies show a 40% improvement in retention when using spaced repetition[^spaced].
[^spaced]: Ebbinghaus, H. (1885). Memory: A Contribution to Experimental Psychology.Technical documentation with supplementary context:
The API uses rate limiting to prevent abuse[^rate-limit].
[^rate-limit]: Default limit is 100 requests per minute. Pro accounts get 1,000. See the [rate limiting docs](/docs/api/rate-limiting) for details.Legal or compliance notes:
All data is encrypted at rest[^encryption].
[^encryption]: AES-256 encryption. Key management handled by AWS KMS. See our [security page](/security) for the full audit report.Definitions and glossary terms:
The document uses frontmatter[^frontmatter] for metadata.
[^frontmatter]: Frontmatter is a block of YAML at the top of a markdown file, delimited by `---`. It stores metadata like title, date, and author.Footnotes vs Inline Links
| Approach | Best For |
|---|---|
| Inline links | References the reader should follow immediately |
| Footnotes | Supplementary context that would interrupt the flow |
| Reference-style links | Many URLs in a single paragraph |
Footnotes work best when the extra information is interesting but not required to understand the main text. If the reader needs the information to follow your argument, use an inline link or parenthetical note instead.
Platform Differences
| Feature | GitHub | VS Code | Obsidian | MDtoLink | Pandoc |
|---|---|---|---|---|---|
Basic footnotes [^1] | Yes | Yes | Yes | Yes | Yes |
Named labels [^name] | Yes | Yes | Yes | Yes | Yes |
| Multi-paragraph | Yes | Yes | Yes | Yes | Yes |
Inline ^[text] | No | No | No | No | Yes |
| Back-reference link | Yes | No | Yes | Yes | Yes |
| Numbering | Auto (sequential) | Auto | Auto | Auto | Auto |
Back-reference links are the small arrows (↩) next to each footnote that let the reader jump back to where the reference appeared in the text.
Common Mistakes
Forgetting the caret. [1] is a reference-style link label, not a footnote. The caret (^) is required: [^1].
Space after the colon. The footnote definition needs a space after the colon:
<!-- Wrong -->[^1]:No space
<!-- Correct -->[^1]: With spaceDefining a footnote without referencing it. If you define [^unused]: text but never write [^unused] in the body, most parsers ignore it. Some parsers render it as an orphaned footnote at the bottom.
Putting the definition inside a paragraph. Footnote definitions must start at the beginning of a line (no indentation for the first line):
<!-- Wrong: definition indented --> [^1]: This may not render.
<!-- Correct: starts at column 0 -->[^1]: This renders correctly.Copy-Paste Templates
Basic footnote:
Text with a reference[^1].
[^1]: The footnote content.Named footnote:
A specific claim[^source-name].
[^source-name]: Author, "Title," Publication, Year. URL.Multi-paragraph footnote:
Complex topic[^detailed].
[^detailed]: First paragraph of explanation.
Second paragraph with additional context.FAQ
How do I add footnotes in markdown?
Use [^label] where you want the reference marker and [^label]: content for the definition. The label can be a number or a name. Example: Text[^1] with [^1]: Footnote content elsewhere in the document.
Where do footnotes appear in the rendered output?
At the bottom of the document. The renderer collects all footnote definitions and displays them in order at the end, regardless of where you placed the definitions in the source file.
Do footnotes work on GitHub?
Yes. GitHub supports footnotes as part of its GFM implementation. Both numeric and named labels work, along with multi-paragraph footnotes.
What is the difference between footnotes and reference-style links?
Footnotes ([^1]) add supplementary text at the bottom of the document. Reference-style links ([text][1]) create clickable links to external URLs. They use similar syntax but serve different purposes.
Try It Out
Test footnotes in the MDtoLink editor and see them render at the bottom of your document. Publish to a shareable URL when you’re ready.
For the full syntax, see the markdown cheat sheet. For standard links, see the markdown links guide.
Founder, MDtoLink
David builds developer tools and writes about markdown workflows, documentation, and AI-assisted publishing.
Publish your markdown to a shareable URL
One command. Free to start. No credit card.