GitHub-compatible slug for every heading

Generate GitHub heading anchors

Extract every heading and turn it into a GitHub-style URL fragment — perfect for building TOCs, deep links, and navigation menus.

Anchor Generator
Input
170 B
17 lines
Output
93 B
7 lines
Status
ready
live
Ratio
0.55×
out/in
input · markdown
output · anchors
#getting-started
#install-run
#troubleshooting
#api-reference
#authentication
#endpoints
#faq
Quick Start

How to extract heading anchors

Scans every # heading in your Markdown, slugifies it the GitHub way, and emits #fragment IDs ready to drop into URLs or TOC links.

  1. 01

    Paste Markdown

    A README or doc with #/##/### headings.

    Parsing runs through marked with GFM extensions enabled — tables, task lists, strikethrough, and fenced code blocks all match GitHub’s rendering.

    inputGFMmarkedCommonMarklive
    input · markdownmd · GFM
    # Title
    loaded · GFMGFM · ready
  2. 02

    Skip code

    Headings inside ``` fences are ignored.

    Soft-break behaviour is configurable: by default a single newline becomes a space (CommonMark), toggle on for chat-style <br> insertion.

    fencesoft-breaksoptionsconfiglive
    skip · options``` · live
    code ignored
    options applied · livelive
  3. 03

    Slugify

    Spaces → dashes, punctuation removed, lowercased.

    The preview is scoped under a .mde class so its CSS doesn’t bleed into the rest of the page. Output HTML is whitespace-controlled for clean diffs.

    slugpreviewscoped CSSrenderstable
    out · renderedid · ready
    #getting-started
    rendered · liverendered
  4. 04

    Link them

    Build TOCs, deep links, or repo nav from the list.

    Export covers both raw Markdown and rendered HTML; downloads stream as text/markdown or text/html via Blob + object URL.

    linkclipboard.md.htmlblob
    ✓ · exportedtoc · done
    ✓ linked
    shipped · ready to shipsuccess
Pro tips

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.

Use Cases

When to use heading anchors

Deep-link every section of any README.

README TOC

Build a Table of Contents at the top of long READMEs. 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-compliant

Issue templates

Link from issue templates to a contributing section. 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-perfect

Docs nav

Generate side-nav fragments for static-site generators. 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-friendly

Wiki cross-links

Cross-link sections across multi-page wikis. 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-stable

Bookmarks

Share a stable URL to a specific section. 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-platform

Marketing pages

Anchor links on landing pages. Output is reproducible: identical input always produces identical Markdown, so doc-generation scripts can rely on it for snapshot tests and embedded into release workflows.

SEO-friendly
FAQ

Frequently asked questions

GitHub's — lowercase, strip punctuation, collapse spaces and dashes. Compatible with github.com READMEs and gist.
No — this lists each heading verbatim. Use the Duplicate Heading Finder to spot collisions.
Emoji characters are stripped during slugify, matching GitHub's behavior.
Anything inside ``` is skipped so language-tag lines like ```js aren't treated as headings.
Locally in your browser — nothing leaves your machine.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!