본문으로 건너뛰기
AZ Tools

마크다운 프론트매터 파서

마크다운 파일 붙여넣기·드롭 → YAML/TOML/JSON 프론트매터를 JSON 객체로 추출, 본문은 별도 + 단어·문자 수.

사용법

  1. .md/.mdx 파일 드롭 또는 ---(YAML)·+++(TOML)·{(JSON)로 시작하는 원시 텍스트 붙여넣기.
  2. 펜스 블록은 필드 테이블과 아래 JSON 객체로 파싱.
  3. 아래 본문은 별도 표시 — 프론트매터 필요 없는 콘텐츠 파이프라인에 복사.

자세한 설명

펼치기

정적 사이트 프레임워크들은 하나같이 페이지별 메타데이터를 파일 맨 위의 울타리 친 블록에 넣고, 서로 다른 것은 울타리뿐입니다. 이 도구는 그 블록이 --- 사이의 YAML인지, +++ 사이의 TOML인지, JSON 객체인지 판별해 평범한 JSON 객체로 파싱해 줍니다. 마이그레이션 스크립트에 그대로 붙여 넣을 수 있는 형태이고, 나머지 파일은 본문으로 단어 수·글자 수와 함께 보여 줍니다.

이 블록은 파일의 가장 첫머리에 있어야 합니다. 위에 빈 줄이 하나 있거나, 편집기가 남긴 바이트 순서 표시가 있거나, 주석이 끼어 있으면 생성기는 프런트매터를 아예 보지 못합니다. 제목도 날짜도 갑자기 사라지고 렌더링 결과에 ---가 그대로 찍히는 페이지는 거의 언제나 이 경우입니다. 다른 무엇보다 먼저 확인할 가치가 있습니다. 증상이 파싱 문제가 아니라 템플릿 버그처럼 보이기 때문입니다.

파서는 의도적으로 작습니다. 평평한 키, 원시 값, 대괄호 배열, 단순한 블록 배열까지만 다룹니다. 완전한 YAML 구현을 끌어들이지 않고도 실제 프런트매터의 압도적 다수를 처리하고, 덤으로 YAML 특유의 함정 한 부류를 피해 갑니다. YAML 1.1에서 no는 거짓 불리언이고, on과 off도 불리언이며, 22:22는 60진 정수로 파싱됩니다. 노르웨이의 국가 코드가 든 필드가 하도 많은 사람을 물어서 이 동작에 별명까지 붙었을 정도입니다. 여기서는 그런 값들이 문자열로 남습니다. 더 안전하지만 동시에 차이이기도 합니다. 이 도구에서 보이는 결과가 YAML 1.1 생성기가 같은 파일로 하는 일과 같으리라는 보장은 없으니, 둘이 어긋나면 어느 한쪽의 버그로 보지 말고 값을 명시적으로 따옴표로 감싸라는 신호로 받아들이세요.

숫자에는 늘 따라다니는 주의사항이 있습니다. 1.20은 1.2가 되면서 끝의 0을 잃으므로, 버전 문자열을 텍스트로 지키려면 따옴표가 필요합니다. 날짜는 변환하지 않고 문자열로 둡니다. 마이그레이션에는 그쪽이 맞습니다. 이미 한 번 파싱된 날짜는 누군가 시간대를 짐작해 붙인 것이고, 두 번 짐작하는 것은 아예 짐작하지 않는 것보다 나쁩니다. 모든 처리는 브라우저에서 이뤄집니다.

자주 묻는 질문

중첩 객체·앵커 지원?

플랫 키·기본 값(문자열·숫자·bool·null)·브래킷 배열(TOML에서 여러 줄에 걸친 것 포함)·YAML 블록 배열·| / > 블록 문자열 처리. 복잡한 중첩·참조·앵커·표시자 없는 멀티라인 문자열은 전체 YAML 라이브러리 필요 — 그건 js-yaml 또는 프레임워크 로더로 파싱.

프론트매터 없으면?

전체 입력을 본문으로 처리. 프론트매터 감지 안 됐다는 힌트 표시, 본문·단어 수는 여전히 작동.

날짜나 버전 번호가 예상과 다르게 나오는 이유는?

YAML은 따옴표 없는 값을 변환하는데, 그 규칙이 사람을 놀라게 한다. 2026-03-15는 문자열이 아니라 날짜 객체가 되고, 1.20은 숫자 1.2가 되어 끝의 0을 잃으며, 08은 잘못된 8진수로 거부되기도 한다. 글자 그대로가 중요한 값 — 버전, 전화번호, 앞자리 0이 있는 식별자 — 은 따옴표로 묶어라. 그러면 적은 대로 살아남는다.

구분자와 형식은 무엇을 써야 하나?

그 파일을 읽을 도구가 기대하는 것이다. 보편적인 규칙은 없다. 대시 세 개는 보통 YAML, 더하기 세 개는 보통 TOML, 여는 중괄호는 보통 JSON이지만, 정적 사이트 생성기는 자기가 만들어진 방식만 알아본다. 그리고 프론트매터는 반드시 첫 줄에서 시작해야 한다. 위에 빈 줄 하나만 있어도 대부분의 파서는 그 블록 전체를 평범한 본문으로 취급한다.

관련 도구