Generator TOC Markdown
Buat daftar isi berlinks dari judul-judul markdown.
Tentang alat ini
Daftar Isi (TOC) Markdown adalah daftar navigasi di bagian atas dokumen yang membantu pembaca melompat dengan cepat ke bagian tertentu. Generator ini secara otomatis mengekstrak judul dari sumber Markdown Anda dan membuat jangkar yang tertaut kompatibel dengan GitHub, GitLab, dan sebagian besar renderer Markdown. Ini menghilangkan pekerjaan manual yang membosankan menulis entri TOC dan memastikan tautan tetap akurat saat dokumen Anda berkembang.
Tempel teks Markdown Anda dan klik Buat untuk langsung membuat TOC berformat dengan tautan jangkar yang berfungsi. Alat ini mendukung opsi yang dapat disesuaikan: kontrol kedalaman judul maksimum (H1 hingga H6) untuk disertakan dan pilih gaya poin yang Anda sukai (tanda hubung, bintang, atau tanda plus). Judul duplikat secara otomatis terdeteksi dan diberi nomor dengan sufiks seperti #heading-1, #heading-2 untuk menghindari konflik jangkar.
Pertanyaan yang Sering Diajukan
Implementasi Kode
import re
def heading_to_anchor(text: str) -> str:
"""Convert heading text to a GitHub-Flavored Markdown anchor."""
anchor = text.lower()
anchor = re.sub(r"[^\w\s-]", "", anchor) # remove punctuation (keep letters, digits, -, _)
anchor = re.sub(r"\s+", "-", anchor.strip()) # spaces β hyphens
return anchor
def generate_toc(markdown: str, max_depth: int = 3, bullet: str = "-") -> str:
lines = []
seen: dict[str, int] = {}
for line in markdown.splitlines():
m = re.match(r"^(#{1,6})\s+(.*)", line)
if not m:
continue
level = len(m.group(1))
if level > max_depth:
continue
title = m.group(2).strip()
anchor = heading_to_anchor(title)
# Deduplicate: second occurrence β anchor-1, third β anchor-2, ...
count = seen.get(anchor, 0)
seen[anchor] = count + 1
if count > 0:
anchor = f"{anchor}-{count}"
indent = " " * (level - 1)
lines.append(f"{indent}{bullet} [{title}](#{anchor})")
return "\n".join(lines)
md = """# Getting Started
## Installation
### Prerequisites
### Install
## Configuration
## Usage
# Advanced
## Performance
## Security
"""
print(generate_toc(md, max_depth=3, bullet="-"))
# - [Getting Started](#getting-started)
# - [Installation](#installation)
# - [Prerequisites](#prerequisites)
# - [Install](#install)
# - [Configuration](#configuration)
# - [Usage](#usage)
# - [Advanced](#advanced)
# - [Performance](#performance)
# - [Security](#security)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.