YAML에서 TOML 형식으로 변환 — Numio
YAML 문서 하나를 TOML로 변환합니다. 중첩 매핑은 [table.sub] 섹션, 매핑 목록은 [[array of tables]]가 되며, 값이 null(~)인 키는 삭제됩니다.
프로젝트가 pyproject.toml, Cargo, Hugo, Netlify의 TOML 설정으로 옮겨 갈 때 YAML 설정을 TOML로 다시 쓸 때.
YAML
TOML
이럴 때 사용하세요
- 프로젝트가 pyproject.toml, Cargo, Hugo, Netlify의 TOML 설정으로 옮겨 갈 때 YAML 설정을 TOML로 다시 쓸 때.
- 설정 형식을 고르기 전에 중첩된 YAML 구조가 TOML 테이블로 어떻게 보이는지 확인할 때.
사용 방법
- 최상위가 매핑인 YAML 문서 하나를 왼쪽 편집기에 붙여 넣거나, 파일 불러오기 버튼으로 UTF-8 파일을 엽니다.
- 표시된 YAML 오류(들여쓰기, 여러 문서, 최상위 목록)를 고칩니다.
- TOML의 날짜, null, 목록을 확인한 뒤 복사합니다.
YAML
# docker-compose style
version: "3.9"
services:
web:
image: nginx:1.27
ports:
- "8080:80"
environment:
DEBUG: false
WORKERS: 4
db:
image: postgres:16TOML
version = "3.9" [services.web] image = "nginx:1.27" ports = [ "8080:80" ] [services.web.environment] DEBUG = false WORKERS = 4 [services.db] image = "postgres:16"
세부 정보 및 제한 사항
YAML은 YAML 1.2로 읽습니다. yes는 문자열 "yes"로 남고, 0o17은 15가 되며, 2024-01-05처럼 따옴표 없는 날짜는 TOML 날짜가 아니라 TOML 문자열이 됩니다.
주석과 앵커는 그대로 유지되지 않습니다. 별칭(*name)과 <<: *anchor 병합 키는 참조하는 값으로 펼쳐집니다.
문서는 하나만 받습니다. --- 구분자가 있는 입력은 여러 문서 오류가 납니다. 최상위가 목록이거나 매핑과 단순 값이 섞인 목록은 설명과 함께 거부됩니다.
브라우저에서 실행됩니다(yaml + @iarna/toml). [services.web.environment] 같은 하위 테이블은 2칸 들여쓰기되지만 TOML은 이 들여쓰기를 무시합니다.
FAQ
docker-compose.yml을 TOML로 변환할 수 있나요?
예시처럼 구조는 변환되지만 Docker Compose는 YAML만 읽습니다. 데이터를 살펴보거나 재사용하는 데 쓰고, Compose 파일로는 쓰지 마세요.
null 값은 어떻게 되나요?
TOML에는 null 타입이 없으므로 값이 ~ 또는 null인 키는 생략됩니다.
YAML 앵커와 병합 키를 지원하나요?
네. 별칭(*name)은 펼쳐지고, <<: *base는 base의 키를 해당 매핑에 복사하며, 나란히 적은 키가 우선합니다. TOML에는 병합된 값이 표시됩니다.