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 ファイルを、インデントされたツリーとして読む。
使い方
- TOML ドキュメントを左側のエディターに貼り付けるか、ファイル読み込みボタンで UTF-8 のファイルを開きます。
- エラーが出たら、表示された行と列をもとに重複キーや構文の問題を探します。
- 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 リストの 1 項目になります。
"Can't redefine existing key" と表示されるのはなぜですか?
同じキーやテーブルが 2 回定義されており、TOML ではこれが禁止されています。エラーには 2 回目の定義の行と列が示されます。