본문으로 건너뛰기

TOML 정렬·검사

TOML Formatter & Validator

TOML을 정렬하고 검사하며 테이블 순서와 인라인 표기 방식을 통일합니다.

TOML 파일의 간격을 정리합니다. `key = value`, 헤더 공백, 배열 줄바꿈까지 맞추고, 그러는 김에 TOML 1.0 규격에 맞는지도 확인합니다. 파일 위로 리더 두 개가 지나갑니다. 하나는 표기 규칙을 알고 주석을 지키고, 다른 하나는 의미 규칙을 알고 JSON 보기를 만듭니다.

🔒 브라우저 안에서만 처리tomlformatvalidateconfig
출력
인라인 테이블
배열 줄바꿈 기준

TOML 입력

.toml 파일 놓기

이 탭 안에서만 읽습니다. 어디에도 올라가지 않습니다.

정렬된 TOML

정렬했습니다.

테이블

5

키/값

13

주석

1

검사

통과

무엇을 바꾸고 무엇을 두는지

  • · key = value의 띄어쓰기, 헤더의 [ a . b ] 같은 공백, 배열·인라인 테이블 안의 간격을 통일하고 헤더 앞에 빈 줄을 하나 둡니다.
  • · 짧은 배열은 한 줄로, 기준 폭을 넘거나 안에 주석이 있는 배열은 요소마다 한 줄로 씁니다. 마지막 요소 뒤에는 쉼표를 붙입니다.
  • · 문자열·숫자·날짜는 쓴 그대로 둡니다. 1_000을 1000으로, 0xff를 255로 바꾸는 것은 정렬이 아니라 편집입니다.
  • · 따옴표가 필요 없는 키("name")는 따옴표를 벗기고, 필요한 키("127.0.0.1")는 리터럴 따옴표로 씁니다.
  • · 앞자리 0, 잘못 놓인 밑줄, True, 여러 줄에 걸친 인라인 테이블, 중복 키, 두 번 정의한 테이블은 TOML 1.0 규격(toml.io)에 따라 거부합니다.

JSON이나 YAML로 바꾸려면 JSON ⇄ TOML 변환기를 쓰세요.

사용 방법

  1. 파일을 붙여넣습니다

    `Cargo.toml`, `pyproject.toml`, `netlify.toml` 같은 것들입니다. 간격이 제각각인 게 정상입니다. 그걸 고치려는 거니까요.

  2. 배열 줄바꿈 폭을 정합니다

    짧은 배열은 한 줄에 그대로 있고, 폭을 넘거나 안에 주석이 있는 배열은 요소마다 한 줄로 쓰고 끝에 쉼표를 붙입니다. 그 쉼표가 나중의 diff를 한 줄로 유지해 줍니다.

  3. 도움이 될 때만 정렬합니다

    키 정렬은 키/값 줄만 옮기고 주석과 빈 줄은 제자리에 둡니다. 테이블 정렬은 같은 층위의 헤더를 이름순으로 옮기고 하위 테이블을 함께 데려갑니다. 테이블 배열의 순서는 데이터이므로 건드리지 않습니다.

자주 묻는 질문

`1_000`을 왜 `1000`으로 안 바꾸나요?

그건 정렬이 아니라 편집이기 때문입니다. 숫자의 밑줄, 16진수 리터럴, 날짜를 쓴 방식은 모두 작성자가 고른 것입니다. 포매터는 공백과 인용만 바꾸고 값은 쓴 그대로 둡니다.

다른 파서는 받는 파일인데 여기서는 거절합니다.

TOML 1.0이 금지하지만 관대한 리더가 봐주는 것들 중 하나일 가능성이 큽니다. 앞자리 0, 잘못 놓인 밑줄, 대문자로 시작하는 `True`, 여러 줄에 걸친 인라인 테이블, 중복 키, 두 번 정의한 테이블 같은 것들입니다. 오류가 어느 것인지 줄 번호와 함께 알려 줍니다.

JSON으로 바꾸면 날짜는 어떻게 되나요?

문자열이 되고 경고로 알립니다. TOML에는 오프셋이 붙은 날짜·시간, 로컬 날짜, 로컬 시각이 정식 타입으로 있지만 JSON에는 하나도 없습니다. 글자만 옮겨 가고 타입은 사라집니다.

주석은 유지되나요?

유지됩니다. 어느 키에 붙어 있었는지까지 함께 지킵니다. 포매터가 변환기의 리더를 재사용하지 않고 자기 스캐너를 따로 가진 이유가 그것입니다. 주석 개수는 통계에 나옵니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.