마크다운 목차 생성기

마크다운 헤딩을 읽어 목차를 자동 생성합니다. 깊이 선택, 번호 매기기, 한글 앵커 링크를 지원합니다.

헤딩을 읽어 즉시 목차를 만듭니다 · 파일은 서버로 전송되지 않습니다
📁 .md 파일을 끌어다 놓거나 클릭해서 선택
파일은 브라우저에서만 읽습니다 · 최대 8MB
목차
~

헤딩 구조

레벨제목앵커 슬러그
마크다운을 입력하면 헤딩 목록이 표시됩니다.

코드블록(백틱 세 개 또는 물결 세 개로 감싼 구간) 안의 #은 헤딩으로 세지 않습니다. 밑줄 스타일 헤딩(등호·하이픈)도 각각 H1·H2로 인식합니다.

앵커 링크는 GitHub 방식 슬러그입니다. 티스토리·워드프레스·벨로그는 앵커 규칙이 달라 링크가 동작하지 않을 수 있습니다. 그럴 때는 "앵커 링크" 체크를 끄고 목차 텍스트만 쓰세요.

마크다운 목차 생성기란?

긴 글에는 목차가 있어야 독자가 원하는 부분으로 바로 갈 수 있고, 검색결과에서도 문서 구조가 드러납니다. 그런데 목차를 손으로 만들면 헤딩을 고칠 때마다 다시 손봐야 합니다. 이 도구는 마크다운의 # 헤딩을 읽어 계층 구조 그대로 목차를 만들어 줍니다. 코드블록 안의 # 주석을 헤딩으로 잘못 잡지 않도록 걸러내고, 한글 제목도 GitHub 방식으로 앵커 슬러그를 만들어 클릭하면 해당 위치로 이동하는 링크를 붙입니다. 같은 제목이 여러 번 나오면 -1, -2 를 붙여 중복도 처리합니다. 목차만 복사하거나, 목차가 본문 앞에 붙은 전체 마크다운을 한 번에 받을 수 있습니다.

사용 방법

  1. 마크다운 원문을 붙여넣거나 .md 파일을 끌어다 놓습니다.
  2. 목차에 포함할 헤딩 깊이(H1~H6)를 고릅니다.
  3. 번호 매기기 또는 불릿 형식을 고릅니다.
  4. 목차만 복사하거나, 목차가 붙은 전체 마크다운을 복사·저장합니다.

마크다운 목차 생성기 사용 가이드

실제 작업에서 이 도구를 어떻게 쓰는지, 무엇을 조심해야 하는지 정리했습니다.

목차가 실제로 바꾸는 것

목차의 효과는 흔히 부풀려서 이야기됩니다. 정직하게 정리하면 이렇습니다.

확실한 효과는 독자 쪽입니다. 긴 글에서 독자가 원하는 대목으로 바로 이동할 수 있으니 뒤로가기로 이탈하는 대신 그 문단을 읽습니다. 검색으로 들어온 사람이 첫 화면에서 "내가 찾던 내용이 이 안에 있구나"를 확인하는 장치이기도 합니다.

검색엔진 쪽 효과는 간접적입니다. 목차 자체가 순위 요소는 아닙니다. 다만 목차를 만들려면 헤딩을 제대로 달아야 하고, 헤딩 구조가 정리된 글은 검색엔진이 주제를 파악하기 쉬워집니다. 구글이 검색결과 아래에 붙이는 섹션 링크도 앵커가 있는 페이지에서 생기지만, 이건 구글이 알아서 판단하는 것이지 목차를 넣는다고 보장되지 않습니다.

헤딩 구조 표에서 H2 다음에 곧바로 H4가 오는 식으로 단계가 건너뛰어 있다면 그것부터 고치세요. 목차 들여쓰기가 이상해 보이는 원인이 대부분 여기에 있습니다.

앵커 링크가 동작하는 곳과 안 되는 곳

이 도구의 앵커 슬러그는 GitHub 방식입니다. 소문자로 바꾸고, 구두점을 지우고(한글·영숫자·공백·하이픈·밑줄만 남김), 공백을 하이픈으로 바꿉니다. 그래서 "## 고르는 기준"은 #고르는-기준 이 됩니다.

문제는 플랫폼마다 이 규칙이 다르다는 것입니다. 같은 제목이라도 워드프레스는 다른 슬러그를 만들고, 티스토리·네이버 블로그는 헤딩에 id를 자동으로 붙여주지 않습니다. 링크를 눌러도 아무 일이 안 일어난다면 규칙이 안 맞는 것입니다.

플랫폼앵커 링크실무 처방
GitHub README·이슈그대로 동작앵커 링크 켜고 목차만 복사해 붙이면 끝
벨로그·깃허브 페이지 등 마크다운 기반대체로 동작발행 후 링크 한두 개를 실제로 눌러 확인
티스토리자동 id 없음HTML 모드에서 헤딩에 id를 직접 넣거나, 앵커 링크를 끄고 목차 텍스트만 사용
네이버 블로그마크다운·id 지원 안 함앵커 링크를 끄고 목차 초안·구조 점검용으로만 사용
브런치문단 구조만 제공목차를 넣기보다 소제목 구성을 점검하는 용도
워드프레스슬러그 규칙이 다름목차 플러그인을 쓰거나 발행된 페이지에서 실제 id를 확인 후 수정
중복 제목은 GitHub와 동일하게 처리합니다. 같은 제목이 두 번 나오면 두 번째부터 -1, -2 가 붙습니다. 통계의 "중복 제목" 숫자가 0이 아니면 목차 링크 두 개가 같은 곳으로 가지 않는지 확인하세요.

헤딩으로 안 잡히는 것들 — 의도된 동작입니다

"헤딩 개수"가 예상보다 적게 나온다면 대개 아래 규칙 때문입니다. 전부 오탐을 막기 위한 처리라 정상 동작입니다.

  • 코드블록 안의 # — 백틱 세 개 또는 물결 세 개로 감싼 구간은 통째로 건너뜁니다. 셸 스크립트 주석(# 설치)이 H1으로 잡히는 사고를 막습니다.
  • YAML 프론트매터 — 파일 맨 위 --- 로 둘러싼 구간은 무시합니다. Jekyll·Hugo 글을 그대로 넣어도 됩니다.
  • # 뒤에 공백이 없는 줄 — #제목 은 헤딩이 아닙니다. 해시태그일 수 있으므로 마크다운 규칙대로 공백이 있어야 인식합니다.
  • 표 안의 줄과 인용문(>) — 밑줄 스타일 헤딩 오인을 막기 위해 파이프(|)가 있는 줄, 목록·인용 줄은 제목 후보에서 제외합니다.
  • 반대로 잡히는 것: 밑줄 스타일(Setext) 헤딩. 제목 아래 등호 줄은 H1, 하이픈 줄은 H2로 인식합니다.
헤딩 텍스트에서 굵게·기울임·링크·인라인 코드 표시는 목차에 넣기 전에 벗겨냅니다. "## **중요**한 것"은 목차에서 "중요한 것"으로 나옵니다.

깊이 설정과 목차 + 본문 모드

기본값이 H2부터 H3까지인 데는 이유가 있습니다. H1은 글 제목이라 목차에 넣으면 자기 자신을 가리키게 되고, H4 이하까지 넣으면 목차가 본문만큼 길어져 아무도 안 봅니다. 대부분의 블로그 글은 H2~H3 두 단계면 충분합니다.

"목차 + 본문" 모드는 목차를 본문 앞에 끼워 넣은 전체 마크다운을 출력합니다. 이때 맨 위 H1(글 제목)이 목차 범위 밖이면 그 H1 바로 아래에 목차를 넣습니다. 제목 위에 목차가 붙는 어색한 결과를 피하기 위해서입니다. "목차 제목" 칸에 값을 넣으면 목차 위에 ## 로 소제목이 붙고, 비우면 목록만 나옵니다.

  1. 원문을 붙여넣고 헤딩 구조 표에서 회색(제외) 항목이 의도한 것인지 확인합니다.
  2. 깊이를 H2~H3으로 두고 목차가 10~15줄 안쪽인지 봅니다. 넘치면 H2까지로 줄입니다.
  3. 발행할 플랫폼이 앵커를 지원하지 않으면 "앵커 링크" 체크를 끕니다.
  4. "목차 + 본문"으로 바꿔 전체를 복사하거나, 저장 버튼으로 with-toc.md 를 내려받습니다.

자주 묻는 질문

한글 제목도 앵커 링크가 되나요?

됩니다. GitHub 방식과 동일하게 공백은 -로 바꾸고 구두점을 제거해 한글을 그대로 살린 슬러그를 만듭니다. 다만 티스토리·워드프레스 등은 앵커 규칙이 달라 그대로 동작하지 않을 수 있으니, 링크 없이 목차만 쓰는 옵션도 제공합니다.

코드블록 안의 #도 헤딩으로 잡히나요?

아니요. 백틱 세 개 또는 물결 세 개로 감싼 코드블록 안은 건너뛰므로 셸 스크립트 주석이 헤딩으로 잘못 잡히지 않습니다.

밑줄 스타일 헤딩도 인식하나요?

Setext 스타일(등호·하이픈 밑줄)도 인식해 각각 H1, H2로 처리합니다.

어디에 쓰면 좋나요?

GitHub README, 벨로그·깃허브 페이지처럼 마크다운을 그대로 쓰는 곳에 바로 붙습니다. 네이버 블로그처럼 마크다운을 안 쓰는 곳에서도 목차 초안을 뽑아 글 구조를 점검하는 용도로 좋습니다.

입력한 내용이 서버로 전송되나요?

아니요. 붙여넣은 마크다운과 끌어다 놓은 파일 모두 브라우저 안에서만 처리됩니다.