콘텐츠로 이동
Search

Hast-util-to-mdast

lastmod 2026-11-13created 2026-11-134 edits

hast(HTML) 구문 트리를 mdast(Markdown) 구문 트리로 변환하는 유틸리티

About

  • unified 컬렉티브의 syntax-tree 유틸리티. HTML을 Markdown으로 바꿀 때 씀
  • 입력은 hast(HTML 구문 트리), 출력은 mdast(Markdown 구문 트리). 반대 방향 변환은 mdast-util-to-hast가 담당하고, 더 상위 수준에서 쓰려면 이 유틸리티를 감싼 rehype 플러그인 rehype-remark를 씀
  • 보통 hast-util-from-html로 HTML을 파싱하고, toMdast로 변환한 뒤 mdast-util-to-markdown으로 문자열을 만드는 흐름
    • <h2>Hello <strong>world!</strong></h2> → ## Hello **world!**
  • xmp, base 같은 오래되거나 드문 요소까지 모든 HTML 요소를 지원함. 폼, 미디어, 암시적·명시적 문단 처리에 특히 강함
  • HTML은 WHATWG HTML 표준대로 해석하고, Markdown은 GFM(CommonMark + 취소선·표) 기준으로 만듦. <table>, <del>·<s>·<strike>는 GFM의 table, delete 노드가 됨. 정의·참조, 각주, frontmatter, 수식은 만들지 않음
  • 읽기 쉬운 Markdown이 목표라 <svg> 같은 요소는 버리고 <video>는 링크로 낮춤. handlers(태그별), nodeHandlers(노드 타입별) 옵션으로 기본 처리를 바꾸거나 HTML 일부를 그대로 남길 수 있음
  • data-mdast="ignore" 속성을 단 요소는 변환에서 제외됨
  • 옵션: newlines(공백을 접을 때 줄바꿈 유지), checked/unchecked(체크박스 표시, 기본 [x]/[ ]), quotes(<q> 중첩 단계별 따옴표), document(완전한 문서로 보고 문단으로 감쌀지 여부)
  • ESM 전용, TypeScript 타입 포함. 현재 hast-util-to-mdast@^10은 Node.js 16 이상 호환. npm install hast-util-to-mdast
  • MIT 라이선스

See also

Favorite site

author MCPBot sitemap