본문으로 건너뛰기
AZ Tools

Markdown 링크 추출기

Markdown 문서에서 모든 링크·이미지 추출 — 인라인·참조형·autolink — text·URL·title로 CSV/JSON/MD 목록.

유형텍스트URL제목
이미지alt texthttps://example.com/cat.pngCute cat
링크a regular linkhttps://example.comExample homepage
링크docshttps://docs.example.com
링크helphttps://help.example.comHelp center
링크https://example.orghttps://example.org

출력 (5 항목)

type,text,url,title
image,alt text,https://example.com/cat.png,Cute cat
link,a regular link,https://example.com,Example homepage
link,docs,https://docs.example.com,
link,help,https://help.example.com,Help center
link,https://example.org,https://example.org,

참조 링크는 같은 문서 안의 [id]: url 정의를 찾아 연결합니다. 꺾쇠괄호(<…>)로 감싸지 않은 맨 URL은 건너뜁니다.

사용법

  1. Markdown 문서/섹션 붙여넣기.
  2. 이미지(![…](…)) 포함 여부 토글.
  3. CSV·JSON·Markdown 목록 출력 선택; 다운스트림 도구에 복사.

자세한 설명

펼치기

마크다운을 붙여 넣으면 그 안의 모든 링크가 구조화된 데이터로 나옵니다. 인라인 링크, 이미지, 정의가 해석된 참조 스타일 링크, 그리고 꺾쇠 자동 링크까지 포함됩니다. 각 행에는 종류, 링크 텍스트 또는 대체 텍스트, 목적지 주소, 제목이 있었다면 제목이 담기고, 표 전체를 JSON·CSV·단순 마크다운 목록으로 복사해 갈 수 있습니다. 참조 정의는 먼저 수집한 뒤 본문에서 제거하므로, 정의 줄이 인라인 링크로 한 번 더 잡히는 일은 없습니다.

이 도구는 CommonMark 파서가 아니라 정규식 추출기이고, 그 차이는 가장자리에서 드러납니다. 이스케이프되지 않은 닫는 괄호가 들어간 주소는 거기서 끊깁니다. _(planet)으로 끝나는 위키백과 주소가 _(planet까지만 나오는 것이 가장 흔한 사례입니다. [![logo](logo.png)](https://example.com)처럼 링크 안에 링크가 중첩된 경우에는 이미지는 제대로 잡히지만 바깥쪽 목적지는 사라집니다. 링크 패턴이 이미지의 닫는 대괄호를 넘어가지 못하기 때문입니다. 자동 링크는 http와 https만 인식하므로 <mailto:…>는 건너뜁니다. 그리고 코드 스팬이라는 개념 자체가 없어서, 예시로 백틱 안에 적어 둔 링크도 진짜 링크와 함께 추출됩니다.

그렇다고 결과가 쓸모없어지는 것은 아닙니다. 1차 초안으로 쓰면 됩니다. SEO 점검 전에 외부 링크 목록을 만들거나, 새 CDN으로 옮기기 전에 README의 이미지를 전부 뽑아내거나, 끊긴 링크를 확인할 URL 목록을 만드는 용도라면, 빠르게 뽑아 놓고 눈으로 훑는 방식이 오히려 정확히 맞는 도구입니다. 한 건도 틀리면 안 되는 작업이라면 렌더링된 페이지와 개수를 맞춰 보세요.

추출은 브라우저 안에서 일어납니다. 외부 서비스에 붙여 넣을 수 없는 사내 문서에도 쓸 수 있는 이유가 이것입니다. 아무것도 업로드되지 않으며, CSV로 내보낼 때는 쉼표·따옴표·줄바꿈이 들어간 필드를 따옴표로 감싸므로 문장부호가 섞인 링크 텍스트도 스프레드시트까지 온전히 건너갑니다.

자주 묻는 질문

어떤 링크 문법 인식?

인라인 [text](url)·옵션 "title"·'title'; 참조 [text][id]([id]: url "title" 정의로 해결); 단축 [text][]; 이미지 등가물(! 접두사); HTML 스타일 autolink <https://…>. <>로 감싸지 않은 베어 URL은 CommonMark에서 모호하므로 의도적으로 건너뜀.

출력에 링크가 없는 이유?

흔한 이유: URL이 여러 줄에 걸침(Markdown 금지)·]과 ( 사이에 공백·참조 링크의 정의 ID가 다름. 인식 집합은 CommonMark 느슨한 규칙 따르지만 완전한 파서는 아님.

URL 페치?

아니요 — 텍스트에 있는 것만 추출. 링크 살아있는지 확인은 출력을 링크 체커(lychee·markdown-link-check·선호하는 Node 도구)에 파이프.

코드 블록 안의 Markdown은?

파서는 펜스 코드 블록을 건너뛰지 않으므로 백틱 세 개로 감싼 블록 안의 [example](https://x)도 잡힘. 입력에 문제 되면 sed나 Markdown AST 도구로 코드 블록 먼저 제거.

관련 도구