English
Youngkwang Yang

기록을 위한 개인 기술 블로그

목차

MDX로 글 안에서 컴포넌트를 쓴다

Astro

마크다운은 글쓰기에 최적이지만, 가끔 마크다운 문법만으로는 표현이 안 되는 게 있다. 강조 박스, 경고, 인터랙티브한 무언가. 이럴 때 파일 확장자를 .mdx로 바꾸면 글 안에서 컴포넌트를 쓸 수 있다.

왜 MDX인가

MDX는 마크다운에 JSX를 얹은 형식이다. 평소엔 그냥 마크다운처럼 쓰다가, 필요한 곳에서만 컴포넌트를 불러 쓴다.

위 상자는 마크다운 문법이 아니다. src/components/Callout.astro 컴포넌트를 글 맨 위에서 import 해서 쓴 것이다.

---
title: MDX로 글 안에서 컴포넌트를 쓴다
---

import Callout from '@/components/Callout.astro';

<Callout title="정리">
  필요한 곳에서만 컴포넌트를 부른다.
</Callout>

켜는 법

공식 통합 하나만 추가하면 된다. 서드파티가 아니라 Astro가 관리하는 패키지다.

npx astro add mdx

이러면 astro.config.mjs에 통합이 등록되고, .mdx 파일이 컬렉션에 함께 잡힌다. 스키마도 마크다운과 똑같이 적용된다.

글의 본질은 여전히 텍스트다. MDX는 그 위에 필요한 만큼만 얹는 도구다.