본문으로 건너뛰기
yutils
예시

입력 (HTML)

<h1>yutils</h1>
<p>A <strong>simple</strong> tool — converts <em>HTML</em> to <a href="https://yutils.dev">Markdown</a>.</p>
<ul>
  <li>Headings</li>
  <li>Lists (nested OK)</li>
</ul>

출력 (Markdown)

# yutils

A **simple** tool — converts *HTML* to [Markdown](https://yutils.dev).

- Headings
- Lists (nested OK)

참고

DOMParser 로 정확한 HTML 트리 파싱 → 재귀 변환. attribute(class·style)·script·style 태그는 의도적으로 무시. 짝 도구 Markdown Preview 로 결과 검증 가능.

사용법 / 자주 묻는 질문

이런 경우 사용하세요

  • 웹페이지·이메일 HTML → README·블로그용 Markdown 변환
  • CMS export HTML → 노션·옵시디언 등 Markdown 환경으로 이동
  • AI 가 생성한 HTML 응답을 Markdown 으로 정리
  • 오래된 HTML 문서를 모던 Markdown 파이프라인으로 마이그레이션
  • Markdown Preview (짝 도구) 와 양방향 워크플로

자주 묻는 질문

Q.어떤 HTML 요소가 지원되나요?
A.헤딩(h1~h6) · 단락 · bold/italic/strikethrough · 코드(inline + block) · 링크 · 이미지 · 리스트(ul/ol nested) · 인용(blockquote) · 수평선 · 표 · 줄바꿈. div/span 등 wrapper 는 내부 콘텐츠만 추출.
Q.class 나 style 같은 attribute 는?
A.Markdown 에 1:1 매핑이 안 되는 attribute(class · style · id 등) 는 의도적으로 무시. 의미가 보존되는 href · src · alt · title 만 유지.
Q.<script> 태그는 어떻게 처리되나요?
A.DOMParser 가 파싱 단계에서 실행하지 않으므로 안전합니다. 변환 결과에서 script · style 태그 콘텐츠는 제외되어 XSS 위험 0.
재미있는 사실
  • Markdown 은 John Gruber 가 2004 년 만든 단순 텍스트 → HTML 변환 문법입니다. 그의 design goal: 'Markdown is intended to be as easy-to-read and easy-to-write as is feasible.' 사양이 느슨해서 dialect 가 여러 생겼고, 2014 년 CommonMark 가 일관 사양을 다시 정의했습니다.

    Daring Fireball — Markdown
  • HTML → Markdown 변환은 항상 lossy 입니다 — Markdown 의 표현력이 HTML 의 부분집합. inline style, class, nested table, custom data 속성은 표현할 수 없거나 raw HTML 로 그대로 보존됩니다. '깔끔한 MD' 와 '원본 충실' 사이 trade-off.

    CommonMark
  • 가장 널리 쓰이는 HTML → MD 라이브러리 turndown 은 Mixmark Studios 가 만들고 2017 년부터 활발 — yutils 도 turndown 을 사용합니다. heading 을 `#` 으로 할지 `====` 로 할지 같은 dialect 차이를 옵션으로 다룹니다.

    turndown on GitHub