GitHub-style anchors · depth filter · 3 markers

Generate a Table of Contents

Scans headings, builds GitHub-compatible anchor links, indents by depth. Skips headings inside code fences.

Markdown TOC Generator
Markdown
260 B
31 lines
Headings
7
h2-h3
TOC
191 B
7 entries
Marker
-
bullet
MinMaxMarker
input · markdown
output · toc
- [Overview](#overview)
- [Getting Started](#getting-started)
  - [Installation](#installation)
  - [Configuration](#configuration)
- [API](#api)
  - [Methods](#methods)
- [License](#license)
Quick Start

How to build a TOC

Reads every heading (skipping those in fenced code), converts to GitHub-style anchor slugs, and renders an indented list.

  1. 01

    Paste Markdown

    Long docs with headings work best.

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

    mdGFMmarkedCommonMarklive
    input · markdownmd · GFM
    # Title
    ## A
    ## B
    loaded · GFMGFM · ready
  2. 02

    Set depth range

    Min 2 / Max 3 captures ## and ### only — usually what you want.

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

    depthsoft-breaksoptionsconfiglive
    depth · options2-3 · live
    ## ✓ ### ✓ #### ✗
    options applied · livelive
  3. 03

    Pick marker

    - (dash), * (star), or 1. (numbered).

    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.

    markerpreviewscoped CSSrenderstable
    marker · rendered- · ready
    - [A](#a)
    rendered · liverendered
  4. 04

    Copy TOC

    Paste below your title heading. Anchors work on GitHub natively.

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

    exportclipboard.md.htmlblob
    ✓ · exportedready · done
    ✓ Copied TOC
    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 add a TOC

Long docs, READMEs, design docs.

README jumps

Long READMEs benefit from a TOC at the top. 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

RFC navigation

Long design docs need section jumps. 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

Wiki pages

GitHub wiki anchors work the same way. 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

Tutorial docs

Lessons with many subsections. 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

Reference manuals

API references — jump to any method. 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

Audit pass

Catch missing or misformatted headings. 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 style — lowercase, spaces → hyphens, drop punctuation. Duplicates get a numeric suffix.
Skipped — they aren't real headings even if they look like them.
Most TOCs skip the H1 title (which is usually the doc title). Default min = 2.
Backticks are stripped from slug generation to match GitHub.
No. The TOC is built locally.
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!