목록 보기
마크다운에 컴포넌트 추가하기
프론트엔드

마크다운에 컴포넌트 추가하기

카카오엔터테인먼트FE
카카오엔터테인먼트FE
2022년 12월 22일

두줄요약

unified 기반의 마크다운 AST 변환 과정을 설명했습니다. Gatsby에서 커스텀 태그를 React 컴포넌트로 치환하고 MDX 대안도 소개합니다.

구조와 흐름

  • unified 플러그인 기반의 마크다운 → mdast → hast → HTML 변환 과정
  • remark-parse의 mdast 생성, remark-rehype의 hast 변환, rehype-stringify의 HTML 직렬화
  • 구문 트리 변환을 통한 문법 확장과 노드 단위 가공 가능성

해결 방법

  • Gatsby가 변환 중간 단계 개입이 어려운 제약에 대응한 최종 HTML 재파싱 방식
  • rehype-parse로 HTML을 hast로 분해하고 rehype-react로 React 노드 변환
  • components 옵션에 커스텀 태그와 SplitDiff·IframeOpener 컴포넌트 연결

선택 이유

  • 마크다운의 raw HTML 태그 지원을 활용한 커스텀 태그 입력 방식
  • 기존 Gatsby 플러그인 적용 결과를 유지하는 후처리 방식
  • JSX 기반 컴포넌트 삽입을 단순화하는 MDX 대안

주의할 점

  • Gatsby의 markdownRemark HTML 결과물 이후에만 적용 가능한 구조
  • 원본 마크다운을 직접 변환할 경우 기존 Gatsby 플러그인 효과 상실 가능성

다음 읽기

#Markdown 주제를 이어서 읽기

마크다운에 컴포넌트 추가하기

마크다운을 mdast, hast, HTML로 변환하는 흐름을 살펴보고, 커스텀 태그를 리액트 컴포넌트로 치환하는 방법을 소개했습니다. MDX와 Gatsby 연동 예시도 함께 정리했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...