このツールの動作
文書は YAML のマッピングになります。形は XML から JSON への変換と同じで、属性は @_ を付けたキーに、テキストと属性を両方持つ要素のテキストは #text に、要素が繰り返されればシーケンスになります。
<user id="1"><name>Ada</name></user>
user:
name: Ada
"@_id": "1"
そのキーが引用される理由
この対応づけが作る文字のうち二つは、YAML で予約されています。
@ は素のスカラーを始められません。仕様が予約しているからで、@_id は引用が必須です。# はコメントを開くので、#text を素で書けば行の残りが消えます。引用符は飾りではなく、それらを書く唯一の方法です。
一部の値も引用される理由
YAML には広く使われている版が二つあり、素の語の意味について一致していません。
| 素で書くと | YAML 1.2 の読み | YAML 1.1 の読み |
|---|---|---|
NO | 文字列 NO | 偽 |
yes | 文字列 yes | 真 |
12:30 | 文字列 12:30 | 750(六十進) |
2026-01-01 | 文字列 | 日時 |
YAML 1.2 は JavaScript のライブラリの多くが書く版です。YAML 1.1 は PyYAML が実装する版で、世界の非常に多くの場所で実際に YAML を読んでいるのは PyYAML です。
つまり素で書かれた国コード NO は、Python では False になります。これが「ノルウェー問題」で、ファイルの中にそれを知らせるものはありません。文書はどちらでも妥当なまま、意味だけが変わります。
このツールは、その曖昧なスカラーだけを引用符で囲みます。本物の真偽値は true のまま、本物の null は null のまま、普通の語は素のままです。出力は妥当な YAML 1.2 であり、どちらの読み手も同じ値を得ます。
複数行のテキスト
改行を含むテキストはブロックスカラーになります。
a: |-
一行目
二行目
これは YAML がまさにこのために用意した読みやすい形で、エスケープなしで往復します。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。