본문으로 건너뛰기

TOML에서 YAML 형식으로 변환 — Numio

TOML 문서를 YAML로 변환합니다. 테이블은 중첩 매핑, [[array of tables]]는 매핑 목록이 되며, 따옴표는 YAML에 필요한 곳에만 붙습니다(예: "2021"은 문자열로 유지).

TOML 설정(Cargo, pyproject, Hugo)의 내용을 CI 워크플로나 Kubernetes 매니페스트 같은 YAML 기반 도구로 옮길 때.

TOML

YAML

이럴 때 사용하세요

  • TOML 설정(Cargo, pyproject, Hugo)의 내용을 CI 워크플로나 Kubernetes 매니페스트 같은 YAML 기반 도구로 옮길 때.
  • 점 표기 키와 중첩 테이블이 있는 긴 TOML 파일을 들여쓰기된 트리로 읽을 때.

사용 방법

  1. TOML 문서를 왼쪽 편집기에 붙여 넣거나, 파일 불러오기 버튼으로 UTF-8 파일을 엽니다.
  2. 오류가 나오면 표시된 줄과 열로 중복 키나 문법 문제를 찾습니다.
  3. YAML의 날짜·시간과 따옴표로 감싼 값을 확인한 뒤 복사합니다.

TOML

# Cargo-style manifest
[package]
name = "demo"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }

[[bin]]
name = "cli"
path = "src/main.rs"

YAML

package:
  name: demo
  version: 0.1.0
  edition: "2021"
dependencies:
  serde:
    version: "1.0"
    features:
      - derive
bin:
  - name: cli
    path: src/main.rs

세부 정보 및 제한 사항

주석은 삭제됩니다. 오프셋이 있는 날짜·시간은 UTC로 변환되고(2024-01-05T10:00:00+09:00은 2024-01-05T01:00:00.000Z) 밀리초가 붙습니다.

출력은 YAML 1.2를 따르므로 yes, on 같은 문자열은 따옴표 없이 기록됩니다. YAML 1.1 파서(예: PyYAML)는 이를 불리언으로 읽을 수 있으니 필요하면 직접 따옴표를 붙이세요.

09:00:00 같은 로컬 시간은 밀리초를 붙여(09:00:00.000) 기록되며, 로컬 날짜와 날짜·시간에는 시간대가 붙지 않습니다.

브라우저에서 실행됩니다(@iarna/toml, yaml, Prettier). inf와 nan은 .inf와 .nan이 됩니다.

FAQ

주석이 유지되나요?

아니요. TOML을 먼저 데이터로 파싱하므로 주석과 빈 줄은 사라집니다. 중요한 주석은 직접 옮기세요.

[[array of tables]]는 어떻게 변환되나요?

예시처럼 각 [[bin]] 블록이 bin 아래 YAML 목록의 항목 하나가 됩니다.

"Can't redefine existing key"가 나오는 이유는 무엇인가요?

같은 키나 테이블이 두 번 정의되었는데, TOML은 이를 금지합니다. 오류에 두 번째 정의의 줄과 열이 표시됩니다.

사양 및 참고 자료