Markdown 포맷터

Markdown 문서를 붙여넣으면 포맷터가 일관된 스타일로 다시 씁니다. 제목 레벨 건너뛰기(H4 뒤에 H2가 오는 등)를 수정하고, 소스에서 정렬되도록 표 열을 채우며, 블록 사이에 빈 줄을 정확히 하나만 두고, 목록 마커를 -로 통일하고, 연속된 빈 줄을 하나로 합치며, 참조 스타일 링크 정의를 문서 하단에 정렬합니다. 렌더링된 HTML은 바뀌지 않고 소스 파일만 깔끔해져 diff가 읽기 쉬워집니다.

포맷터가 Markdown을 다시 쓰는 방식

  1. 1

    Markdown 붙여넣기

    원본 문서를 넣으세요, README, 문서 페이지, 회의록 등.

  2. 2

    스타일 옵션 선택

    목록 마커(`-`/`*`), 제목 스타일(ATX/Setext), 표 정렬, 줄바꿈 열.

  3. 3

    서식 지정

    문서를 AST로 파싱한 뒤 선택한 스타일로 다시 직렬화합니다.

  4. 4

    출력 비교

    나란히 보기로 다시 붙여넣기 전에 무엇이 바뀌었는지 보여줍니다.

포맷터가 고치는 것

  • 목록 마커. *, -, +가 모두 일관된 하나의 문자(기본값 -)로 통일됩니다.
  • 제목 계층. H2 다음에 H3 없이 H4가 오면 경고(또는 레벨 승격)합니다.
  • 빈 줄. 블록 사이에 빈 줄을 정확히 하나만 둡니다. 세 줄 이상 연속은 없앱니다.
  • 표. Markdown 렌더러는 신경 쓰지 않지만, 소스에서 파이프(|)가 정렬되도록 각 열을 채웁니다.
  • 줄 끝 공백. 의도적인 두 칸 줄바꿈 마커를 제외한 모든 줄에서 줄 끝 공백을 제거합니다.
  • 참조 링크. [label]: url 정의를 문서 끝에 모아 알파벳순으로 정렬합니다.
  • 코드 펜스. 언어 태그를 소문자로 통일하고, 들여쓰기 기반 코드 블록을 펜스 블록으로 바꿉니다.

설정할 수 있는 스타일 옵션

옵션 기본값 대안
목록 마커 - *, +
제목 스타일 ATX H1/H2는 Setext
강조 구분자 * _
굵게 구분자 ** __
줄바꿈 열 0(끄기) 80, 100, 120
참조 링크 정렬 켜기 끄기

일관된 Markdown이 중요한 이유

팀 저장소에서 일관되지 않은 Markdown은 지저분한 diff를 만듭니다. 누군가 다른 편집기로 파일을 저장할 때마다 목록 마커가 바뀌고 표가 다시 정렬됩니다. 포맷터가 하나의 스타일을 강제하므로 풀 리퀘스트 검토자는 내용 변경만 보게 됩니다. 산문을 위한 prettier라고 생각하면 됩니다.

서식을 지정하지 말아야 할 때

  • 펜스 코드 블록은 바이트 단위로 그대로 유지됩니다, 포맷터는 코드 블록의 내용을 절대 건드리지 않습니다. 서식 지정이 코드를 바꾼다면 버그입니다.
  • 좁은 너비의 의도적인 하드 줄바꿈(터미널 프로젝트의 readme.md 등)은 줄바꿈 열을 켜면 다시 줄바꿈됩니다. 수동으로 맞춘 줄바꿈을 유지하려면 줄바꿈을 끄세요.
  • 삽입된 HTML 블록은 변경 없이 그대로 통과합니다.

대체 도구

로컬 CLI를 선호한다면, 포맷터는 remark-gfm 플러그인을 사용한 remark-stringify와 동일한 AST 규칙을 사용합니다. prettier --parser markdown도 비슷한 결과를 냅니다.

자주 묻는 질문

아니요. 포맷터는 소스만 다시 씁니다, 서식 지정 전후에 렌더링되는 HTML 출력은 동일해야 합니다. 렌더링이 바뀌면 버그로 신고해 주세요.

아니요. 파일 상단의 YAML 또는 TOML front-matter는 감지되어 그대로 통과합니다.

네, 줄바꿈 열을 80, 100 또는 120으로 설정하면 문단이 다시 줄바꿈됩니다. 코드 펜스 안의 줄은 절대 건드리지 않습니다.

아니요. 포맷터는 링크가 작동한다고 가정하며 참조 링크 정의만 재정렬합니다. 링크 검사 도구는 별도로 사용하세요.

아니요. 파싱과 서식 지정은 브라우저에서 실행되며 콘텐츠는 절대 기기를 벗어나지 않습니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다