Build Markdown footnotes that stay in sync
Reference notes inline with [^id] and define them at the end. Add, edit, and remove footnotes — the output keeps both sides aligned.
[^id] tokensPi is irrational[^pi] and was proven by Lambert[^lambert]. [^pi]: An irrational number is one that cannot be written as a ratio of two integers. [^lambert]: Johann Heinrich Lambert (1768).
How to add Markdown footnotes
Inline reference plus a definition block. GitHub, GitLab and most Markdown processors render numbered footnotes automatically.
- 01
Write the body
Drop a
[^id]token wherever you want a footnote pointer.Parsing runs through marked with GFM extensions enabled — tables, task lists, strikethrough, and fenced code blocks all match GitHub’s rendering.
bodyGFMmarkedCommonMarkliveinput · markdownbody · GFMPi is irrational[^pi].
loaded · GFMGFM · ready - 02
Define footnotes
Each footnote has an id and the text shown at the bottom.
Soft-break behaviour is configurable: by default a single newline becomes a space (CommonMark), toggle on for chat-style
<br>insertion.defssoft-breaksoptionsconfiglivedefs · options2 · live[^pi]: ratio of integers.
options applied · livelive - 03
Keep them in sync
The orphan counter flags definitions whose id never appears in the body.
The preview is scoped under a
.mdeclass so its CSS doesn’t bleed into the rest of the page. Output HTML is whitespace-controlled for clean diffs.checkpreviewscoped CSSrenderstableorphan · renderedno · readyorphans: 0
rendered · liverendered - 04
Copy Markdown
Paste into your blog, docs or GitHub Discussion.
Export covers both raw Markdown and rendered HTML; downloads stream as
text/markdownortext/htmlviaBlob+ object URL.exportclipboard.md.htmlblob✓ · exportedready · done✓ Copied
shipped · ready to shipsuccess
Author Markdown that renders everywhere
GFM is the safe default
GitHub-Flavored Markdown is the de-facto baseline (tables, task lists, strikethrough). CommonMark is stricter but ubiquitous as a fallback.
Soft-break behaviour varies
A single newline is a space in CommonMark, a <br> in GFM. Toggle soft breaks when source matters.
Escape inside code fences
Backticks inside fenced blocks need a longer fence — three becomes four. Use ~~~ if your content has many backticks.
Anchors are slugified
GitHub lowercases, strips punctuation, and joins with hyphens. Duplicate headings get -1, -2 suffixes.
Tables need a header row
The dash row sets alignment (:---, :-:, ---:). Use Table Aligner for diff-friendly columns.
Front matter is YAML
Triple-dash blocks at the top of files are parsed by static-site generators. Use the Front-Matter Validator to catch syntax errors.
Where footnotes shine
Long-form docs, academic notes, citations.
Blog posts
Add citations without cluttering the body. Render path uses marked with GFM extensions enabled (tables, task lists, strikethrough, autolinks), so what you preview matches what GitHub publishes bit-for-bit. Soft-break behaviour is configurable for chat-style vs prose Markdown.
GFM-compliantRFCs
Reference prior art and links at the bottom. Pairs cleanly with the Markdown Cheatsheet for syntax you can't quite remember — callout blocks, footnotes, definition lists. Output stays diff-friendly so style-only changes don't drown out real edits in PRs.
GitHub-perfectBooks and papers
Long-form prose with many references. Cross-platform safe: anchors, code fences, and tables behave identically on GitHub, GitLab, Bitbucket, and Gitea. Heading-anchor slugs follow GitHub's lowercase-and-hyphenate rules so deep links survive a docs migration.
diff-friendlyTutorials
Add side notes that don't break flow. No server roundtrip — perfect for proprietary content you can't paste into a public tool. The full marked + GFM bundle ships with the page, so it works offline once loaded.
render-stableMigration notes
Footnote breaking changes inline. Front matter (YAML / TOML / JSON) passes through unchanged so static-site pipelines (Jekyll, Hugo, Astro, Eleventy) read it correctly. Pair with the Front-Matter Validator to catch syntax errors before deploy.
cross-platformHugo / Jekyll
Static-site engines render the [^id] syntax.
Frequently asked questions
[^id] inline references and [^id]: text definitions — supported by GitHub, GitLab, Pandoc, MkDocs and most engines.[^id] or remove the orphan.Something missing?
Tell us what you need. We ship the top requests every two weeks.