A Markdown table of contents generator reads the headings in a Markdown document and produces a nested list of links that jump to each section. You paste your Markdown, and the tool returns a ready-to-use block such as a bulleted list where every line is a `[Heading](#anchor)` link. It saves you from writing the outline by hand and from guessing the anchor id that a renderer will assign to each heading.
The heart of the tool is the anchor slug. GitHub, GitLab, and most static-site generators turn a heading like "Getting Started" into the id `getting-started` by lowercasing the text, removing punctuation, and replacing spaces with hyphens. This generator applies that same rule, including the numeric suffix (`-1`, `-2`) that GitHub adds when two headings share a slug, so the links it produces resolve to the exact ids your README or docs page will render. It reads both ATX headings (lines that start with `#`) and Setext headings (text underlined with `=` or `-`), and it ignores any `#` that appears inside a fenced code block. Headings carrying inline formatting are handled the same way: a link, bold text, inline code, or an image inside a heading is reduced to its plain text for the label, and the anchor is built from that same cleaned string, so the two always agree.
Everything runs in your browser. The Markdown you paste is parsed with client-side JavaScript and never leaves your device, so there is no upload, no account, and no tracking of your content. The tool works offline once the page has loaded, lets you choose the heading levels to include, switch between bulleted and numbered lists, and control the indentation, and it updates the outline the moment you change an option.
Drop your full Markdown document or README into the input box. Headings inside fenced code blocks are skipped automatically.
Set the shallowest and deepest levels to include. A common choice is H2 to H3, which keeps the outline readable without listing every sub-section.
Switch between a bulleted or numbered list, toggle the anchor links on or off, and select two-space, four-space, or tab indentation.
Copy the generated Markdown and paste it near the top of your document. Each entry links to the matching heading anchor.
Slugs match the ids GitHub renders, including numeric suffixes for duplicate headings, so every link resolves correctly.
Include only the heading levels you want. Nesting is measured from the shallowest included heading, so a list that starts at H2 stays flush left.
Output a bulleted list or a numbered list with per-level counters, with optional anchor links and configurable indentation.
Headings written inside fenced code blocks are ignored, so example snippets never leak into your outline.
Generate an accessible HTML table from pasted CSV or tab-separated data. Add a header row, caption, striped rows, and borders, then copy the HTML and CSS. 100% in your browser.
Convert HTML to clean Markdown instantly. Turns headings, lists, links, images, blockquotes, code blocks and tables into portable GitHub Flavored Markdown. Tolerant of messy CMS markup. 100% client-side.
Build Markdown tables in a spreadsheet-style editor - import CSV, Excel, or an existing table, set alignment, copy clean GFM
Convert Markdown to clean, semantic HTML with GitHub Flavored Markdown support - tables, task lists, fenced code, heading anchors, live preview and a full HTML document export.
0 comments
No comments yet. Be the first to share your thoughts!