본문으로 건너뛰기
Case Converter Online
ko

마크다운 포매터

마크다운을 붙여넣으면 목록, 강조, 빈 줄, 표를 한 번에 정리합니다. Prettier와 같은 규칙을 쓰므로 에디터에서 정렬한 결과와 똑같이 나옵니다.

Markdown 코드를 붙여넣거나 예시를 누르세요. Ctrl과 Enter를 누르면 포맷됩니다. 모든 작업은 브라우저에서 실행됩니다.

마크다운 포매터가 하는 일

마크다운은 너그럽습니다. 글머리 기호는 -, *, + 중 무엇으로든, 강조는 *나 _로, 제목은 등호 줄이나 #으로 쓸 수 있습니다. 입력할 때는 이 자유로움이 편하지만, 여러 사람이 고친 파일에는 금세 온갖 스타일이 섞입니다. 표의 칸이 어긋나고, 빈 줄이 빠지고, diff가 지저분해집니다. 마크다운 포매터는 이런 파일을 한 번에 정리해 줍니다.

이 포매터는 소스를 하나의 일관된 스타일로 다시 씁니다. 대부분의 JavaScript 프로젝트가 문서 정리에 이미 쓰고 있는 Prettier를 기반으로 하므로, VS Code나 명령줄에서 Prettier를 돌린 결과와 같습니다.

사용 방법

  1. 왼쪽 상자에 마크다운을 붙여넣거나, 파일 열기를 눌러 .md 파일을 불러옵니다. 붙여넣으면 바로 정렬됩니다.
  2. 먼저 예제를 보고 싶다면 예시를 누릅니다.
  3. 들여쓰기, 줄 너비, 텍스트 줄바꿈 방식을 고릅니다. 줄바꿈 방식은 그대로 유지, 줄 너비에서 줄바꿈, 문단당 한 줄 중 하나입니다.
  4. 설정을 바꾼 뒤 다시 실행하려면 포맷(또는 Ctrl과 Enter)을 누릅니다.
  5. 복사나 다운로드로 결과를 가져갑니다. 지우기를 누르면 입력이 비워집니다.

한 번 포맷한 뒤에는 입력하는 대로 결과가 따라 바뀝니다.

정렬 전과 후

여러 스타일이 섞인 짧은 파일입니다.

Project Notes
=============
* Install the tools
* Run the build
+ Deploy

|Name|Role|
|-|-|
|Ada|Admin|
|Linus|Editor|

Some *emphasis* and __bold__ text.

포매터는 다음 결과를 돌려줍니다.

Project Notes
=============

- Install the tools
- Run the build

* Deploy

| Name  | Role   |
| ----- | ------ |
| Ada   | Admin  |
| Linus | Editor |

Some _emphasis_ and **bold** text.

몇 가지가 바뀌었습니다. 제목 다음에 빈 줄이 생겼습니다. 첫 번째 목록은 -를 씁니다. 굵게는 **, 기울임은 _를 씁니다. 표의 열은 일반 텍스트로 봐도 줄이 맞도록 공백으로 채워졌습니다. “Deploy”가 따로 떨어져 있다는 점도 보세요. 다른 글머리 기호를 썼기 때문에 마크다운은 이를 두 번째 목록으로 취급하며, 포매터는 다른 기호를 붙여 그 의미를 지킵니다.

긴 문단 줄바꿈

텍스트 줄바꿈을 줄 너비에서 줄바꿈으로, 줄 너비를 60으로 설정하면 다음 문단은

Markdown files are easier to review when each paragraph follows the same rule for line length, because a diff then shows only the sentence that changed.

이렇게 바뀝니다.

Markdown files are easier to review when each paragraph
follows the same rule for line length, because a diff then
shows only the sentence that changed.

문단당 한 줄은 반대로 동작해 줄바꿈된 줄을 다시 한 줄로 합칩니다. 팀에서 어떤 방식을 쓰는지 모를 때는 그대로 유지가 안전한 기본값입니다.

건드리지 않는 것

포매터는 배치를 바꿀 뿐 의미는 바꾸지 않습니다. 일부러 손대지 않는 것들은 다음과 같습니다.

  • 코드 블록. 펜스 코드 블록 안의 코드는 작성한 그대로 남습니다. const a={b:1}이 들어 있는 js 블록도 다시 정렬되지 않습니다. 그런 코드는 자바스크립트 포매터를 쓰세요.
  • 번호 목록. 모든 항목이 1.로 시작하면 모든 줄에 1.을 유지합니다. 1, 2, 3으로 번호를 매겼다면 그대로 둡니다.
  • 올바른 문법이 아닌 텍스트. 공백 없는 #Title은 CommonMark에서 제목이 아니므로 일반 문단으로 남습니다. 공백을 넣으면 제목이 됩니다.
  • 인라인 HTML. 마크다운 안의 HTML 태그는 그대로 유지됩니다.

팁

  • 커밋하기 전에 포맷하세요. 파일이 일관되면 풀 리퀘스트의 diff에는 실제 수정 사항만 나타납니다.
  • 저장소 전체에 줄바꿈 규칙을 하나만 정하세요. 줄바꿈된 파일과 그렇지 않은 파일이 섞여 있으면 누군가 처음 포맷할 때 diff가 크게 생깁니다.
  • 표를 손으로 만드는 것은 느립니다. 마크다운 표 만들기 도구는 칸에 바로 입력할 수 있는 그리드를 제공하고 스프레드시트에서 붙여넣기도 받습니다.
  • 웹 페이지나 워드 파일을 마크다운으로 옮겨야 한다면 HTML 마크다운 변환기나 워드 마크다운 변환기를 쓴 뒤 여기서 결과를 정리하세요.

마크다운을 정렬하는 다른 방법

  • VS Code: Prettier 확장을 설치하고 .md 파일을 연 다음 Format Document(문서 서식)를 실행합니다. 결과는 이 페이지와 같습니다.
  • 명령줄: npx prettier --write README.md는 파일을 그 자리에서 정렬합니다. 문단을 줄바꿈하려면 --prose-wrap always를 덧붙입니다.
  • 린트: markdownlint는 제목 단계나 줄 길이 같은 스타일 규칙을 검사합니다. 린터는 문제를 알려 주고, 포매터는 배치를 대신 고쳐 줍니다. 둘 다 쓰는 프로젝트가 많습니다.

한계

포매터는 CommonMark에 표, 작업 목록 같은 GitHub 확장을 더한 규칙을 따릅니다. 커스텀 컨테이너나 위키 링크처럼 다른 도구의 확장 문법은 일반 텍스트로 취급되므로, 그 도구가 기대하는 것과 공백이 다르게 정리될 수 있습니다. 파일 맨 위의 프런트 매터(두 --- 줄 사이의 블록)는 유지됩니다. 아주 큰 파일도 처리할 수 있지만 모든 작업이 기기에서 이루어지므로 시간이 더 걸립니다.

마크다운 포매터 자주 묻는 질문

포맷하면 마크다운이 렌더링되는 모습이 바뀌나요?

아니요. 포매터는 소스를 쓰는 방식만 바꿉니다. 목록 기호, 강조 기호, 빈 줄, 표의 칸 맞춤이 그 대상이며, 렌더링된 페이지는 똑같아 보입니다. 펜스 코드 블록 안의 코드는 작성한 그대로 남습니다.

목록이 왜 두 개로 나뉘었나요?

마크다운에서는 글머리 기호 문자를 바꾸면 새 목록이 시작됩니다. 한 목록에 *와 +를 섞어 쓰면 마크다운은 이를 두 개의 목록으로 읽기 때문에 포매터도 두 목록으로 유지합니다. 하나의 목록으로 만들려면 모든 항목에 같은 기호를 쓰세요.

텍스트 줄바꿈 옵션은 무엇을 하나요?

그대로 유지는 기존 줄바꿈을 건드리지 않습니다. 줄 너비에서 줄바꿈은 선택한 줄 너비에 맞춰 문단을 줄바꿈합니다. 문단당 한 줄은 각 문단을 한 줄로 합치며, Git diff를 보기 위해 이 방식을 선호하는 사람이 많습니다.

텍스트가 어딘가로 업로드되나요?

아니요. 포매터는 브라우저에서 실행됩니다. 마크다운이 서버로 전송되지 않으므로 개인 노트나 사내 문서에도 안심하고 쓸 수 있습니다.

코드와 데이터 도구 더 보기

전체 도구 보기