ืžื™ืจ ืึทืœืข ืœื™ื‘ืข ืึทื ืกื™ื‘ืœืข, ืึธื‘ืขืจ ืึทื ืกื™ื‘ืœืข ืื™ื– ื™ืžืœ. ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ ืคึฟืึทืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก: ืจืฉื™ืžื•ืช ืคื•ืŸ ื•ื•ืึทืœื•ืขืก, ืคึผืึทืจืึทืžืขื˜ืขืจ-ื•ื•ืขืจื˜ ืคึผืขืจื–, INI ื˜ืขืงืขืก, YAML, JSON, XML ืื•ืŸ ืคื™ืœืข ืื ื“ืขืจืข. ืึธื‘ืขืจ, ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื•ืช ืคื•ืŸ ืึทืœืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™, YAML ืื™ื– ืึธืคื˜ ื’ืขื”ืืœื˜ืŸ ืกืคึผืขืฆื™ืขืœ ืฉื•ื•ืขืจ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื˜ืจืึธืฅ ื–ื™ื™ืŸ ืจืขืคืจืขืฉื™ื ื’ ืžื™ื ืึทืžืึทืœื™ื–ืึทื ืื•ืŸ ื™ืžืคึผืจืขืกื™ื•ื• ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื›ื™ื™ืจืึทืจืงืึทืงืึทืœ ื•ื•ืึทืœื•ืขืก, ื“ื™ YAML ืกื™ื ื˜ืึทืงืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทื ื•ื™ื™ื ื’ ืžื™ื˜ ื–ื™ื™ืŸ ืคึผื™ื˜ื”ืึธืŸ-ื•ื•ื™ ืฆื•ื’ืึทื ื’ ืฆื• ื™ื ื“ืขื ื˜ื™ื™ืฉืึทืŸ.

10 ื˜ืจื™ื˜ ืฆื• YAML Zen

ืื•ื™ื‘ ื™ืึทืž"ืœ ืคึผื™ืกืก ืื™ืจ ืึทื•ื•ืขืง, ืื™ืจ ืงืขื ืขืŸ - ืื•ืŸ ืื™ืจ ื–ืึธืœ! - ื ืขืžืขืŸ ื“ื™ ืคืืœื’ืขื ื“ืข 10 ืกื˜ืขืคึผืก ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ื™ืŸ ืคืจืึทืกื˜ืจื™ื™ืฉืึทืŸ ืฆื• ืึท ืคึผืึทืกื™ืง ืžื“ืจื’ื” ืื•ืŸ ื•ื•ืขืจืŸ ืื™ืŸ ืœื™ื‘ืข ืžื™ื˜ YAML. ืœื•ื™ื˜ ืฆื• ื“ืขืจ ืจืฉื™ืžื”, ืื•ื ื“ื–ืขืจ ืฆืขืŸ ืขืฆื•ืช ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ื’ืขืฆื™ื™ืœื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ, ืžื™ืจ ื•ื•ืขืœืŸ ืœื™ื™ื’ืŸ ืงืœืขืจืŸ ืื•ืŸ ืจื•ื—ื ื™ื•ืช ืคึผืจืึทืงื˜ื™ืกื™ื– ๐Ÿ˜‰

0. ืžืึทื›ืŸ ื“ื™ื™ืŸ ืจืขื“ืึทืงื˜ืึธืจ ืึทืจื‘ืขื˜

ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืขื ื™ืŸ ื•ื•ืึธืก ื˜ืขืงืกื˜ ืจืขื“ืึทืงื˜ืึธืจ ืื™ืจ ื”ืึธื‘ืŸ, ืขืก ืื™ื– ืžื™ืกื˜ืึธืžืข ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ YAML. ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืื™ื™ืŸ, ื’ืขืคึฟื™ื ืขืŸ ืื•ืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืก ืžื™ื“. ื“ื™ ืฆื™ื™ื˜ ืคืืจื‘ืจืื›ื˜ ื“ื•ืจืš ื–ื•ื›ืŸ ืื•ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื•ื•ืขื˜ ื‘ืึทืฆืึธืœืŸ ืคื™ืœ ืžืึธืœ ืื™ื‘ืขืจ ื™ืขื“ืขืจ ืžืึธืœ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ืจืขื“ืึทื’ื™ืจืŸ YAML.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืจืขื“ืึทืงื˜ืึธืจ ืึทื˜ืึธื ืฉื˜ื™ืฆื˜ YAML ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึธื‘ืขืจ ืคึฟืึทืจ GNU Emacs ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ื ืึธืš ืคึผืึทืงืึทื“ื–ืฉืึทื–, ืœืžืฉืœ, ื™ืึทืžืœ ืžืึธื“ืข.

10 ื˜ืจื™ื˜ ืฆื• YAML Zen

Emacs ืื™ืŸ YAML ืžืึธื“ืข ืื•ืŸ ื•ื•ื™ื™ึทื– ืกืคึผื™ื™ืกืึทื–.

ืื•ื™ื‘ ื“ื™ื™ืŸ ื‘ืึทืœื™ื‘ืกื˜ืข ืจืขื“ืึทืงื˜ืึธืจ ื”ืื˜ ื ื™ืฉื˜ ืึท YAML ืžืึธื“ืข, ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืคึผืจืึธื‘ืœืขืžืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“ ื“ื•ืจืš ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก. ืฆื•ื ื‘ื™ื™ืฉืคึผื™ืœ, ื“ืขืจ ื ืึธืจืžืึทืœ GNOME ื˜ืขืงืกื˜ ืจืขื“ืึทืงื˜ืึธืจ Gedit ื”ืื˜ ื ื™ืฉื˜ ืึท ื™ืึทืžืœ ืžืึธื“ืข, ืึธื‘ืขืจ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืขืก ื›ื™ื™ืœื™ื™ืฅ ื“ื™ ื™ืึทืžืœ ืกื™ื ื˜ืึทืงืก ืื•ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ื™ื ื“ืขื ื˜ื™ื™ืฉืึทื ื–:

10 ื˜ืจื™ื˜ ืฆื• YAML Zen

ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื™ื ื“ืขื ืฅ ืื™ืŸ Gedit.

ืึท ืคึผืœื•ื’ื™ืŸ drawspaces ืคึฟืึทืจ Gedit, ื“ื™ืกืคึผืœื™ื™ื– ืกืคึผื™ื™ืกืึทื– ื•ื•ื™ ื“ืึทืฅ, ื™ืœื™ืžืึทื ื™ื™ื˜ื™ื ื’ ืึทืžื‘ื™ื’ื™ื•ืึทื˜ื™ื– ืžื™ื˜ ื™ื ื“ืขื ื˜ื™ื™ืฉืึทืŸ ืœืขื•ื•ืขืœืก.

ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืคืึทืจื‘ืจืขื ื’ืขืŸ ืฆื™ื™ื˜ ืฆื• ืœืขืจื ืขืŸ ื•ื•ืขื’ืŸ ื“ื™ื™ืŸ ื‘ืึทืœื™ื‘ืกื˜ืข ืจืขื“ืึทืงื˜ืึธืจ. ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ื•ื•ืึธืก ืขืจ ืึธื“ืขืจ ื–ื™ื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืงื”ืœ ืึธืคืคืขืจืก ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ YAML, ืื•ืŸ ื ื•ืฆืŸ ื“ื™ ืึทืคึผืขืจื˜ื•ื ืึทื˜ื™ื–. ืื™ืจ ื•ื•ืขื˜ ื‘ืืฉื˜ื™ืžื˜ ื ื™ื˜ ื‘ืึทื“ื•ื™ืขืจืŸ ืขืก.

1. ื ื™ืฆืŸ ืึท ืœื™ื ื˜ืขืจ

ื™ื“ืขืึทืœืœื™, ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ ืื•ืŸ ืžืึทืจืงืึทืคึผ ืฉืคึผืจืึทื›ืŸ ื ื•ืฆืŸ ืคึผืจื™ื“ื™ืงื˜ืึทื‘ืึทืœ ืกื™ื ื˜ืึทืงืก. ืงืึธืžืคึผื™ื•ื˜ืขืจืก ื–ืขื ืขืŸ ื’ื•ื˜ ืื™ืŸ ืคึผืจื™ื“ื™ืงื˜ืึทื‘ื™ืœื™ื˜ื™, ื•ื•ืึธืก ืื™ื– ื•ื•ืึธืก ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ืคื•ืŸ lintera. ืื•ื™ื‘ ืื™ืŸ ื“ื™ 40 ื™ืึธืจ ืคื•ืŸ ื–ื™ื™ืŸ ืขืงื–ื™ืกื˜ืขื ืฅ ืขืก ืื™ื– ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื“ื•ืจืš ืื™ืจ ืื•ืŸ ืื™ืจ ื ืึธืš ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ืึท YAML ืœื™ื ื“ืขืจ, ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื™ืึทืžืœื™ืŸ.

ื™ื ืกื˜ืึทืœื™ืจืŸ yamllint ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ื ืึธืจืžืึทืœ ืœื™ื ื•ืงืก ืคึผืขืงืœ ืคืึทืจื•ื•ืึทืœื˜ืขืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ Red Hat ืขื ื˜ืขืจืคึผืจื™ื™ื– ืœื™ื ื•ืงืก 8 ืึธื“ืขืจ ืคืขื“ืึธืจืึท ืขืก ืื™ื– ื’ืขื˜ืืŸ ื•ื•ื™ ื“ืึธืก:

$ sudo dnf install yamllint

ื“ืขืจื ืึธืš ืื™ืจ ื ืึธืจ ืœื•ื™ืคืŸ ื™ืึทืžืœืœื™ื ื˜ ืื•ืŸ ืคืึธืจืŸ ื“ื™ YAML ื˜ืขืงืข ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ. ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืขืก ืงื•ืงื˜ ื•ื•ื™ ืื•ื™ื‘ ืื™ืจ ืคืึธืจืŸ ืึท ื˜ืขืงืข ืžื™ื˜ ืึท ื˜ืขื•ืช ืฆื• ื“ื™ ืœื™ื ื˜ืขืจ:

$ yamllint errorprone.yaml
errorprone.yaml
23:10     error    syntax error: mapping values are not allowed here
23:11     error    trailing spaces  (trailing-spaces)

ื“ื™ ื ื•ืžืขืจืŸ ืื•ื™ืฃ ื“ื™ ืœื™ื ืงืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ื™ ืฆื™ื™ื˜, ืึธื‘ืขืจ ื“ื™ ืงืึธื•ืึธืจื“ืึทื ืึทืฅ ืคื•ืŸ ื“ื™ ื˜ืขื•ืช: ืจื•ื“ืขืจืŸ ืื•ืŸ ื–ื™ื™ึทืœ ื ื•ืžืขืจ. ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ืขื ื˜ืขื•ืช ืงืขืŸ ื ื™ืฉื˜ ื–ืึธื’ืŸ ืื™ืจ ืขืคึผืขืก, ืึธื‘ืขืจ ืื™ืจ ื•ื•ื™ืกืŸ ืคึผื•ื ืงื˜ ื•ื•ื• ืขืก ืื™ื–. ื ืึธืจ ืงื•ืง ืื™ืŸ ื“ืขื ืึธืจื˜ ืื™ืŸ ื“ื™ ืงืึธื“, ืื•ืŸ ืจื•ื‘ึฟ ืžืกืชึผืžื ืึทืœืฅ ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืงืœืึธืจ.

ื•ื•ืขืŸ ื™ืึทืžืœืœื™ื ื˜ ื’ืขืคื™ื ื˜ ืงื™ื™ืŸ ืขืจืจืึธืจืก ืื™ืŸ ืึท ื˜ืขืงืข, ื’ืึธืจื ื™ืฉื˜ ืื™ื– ื’ืขื“ืจื•ืงื˜ ืฆื• ื“ืขื ืขืงืจืึทืŸ. ืื•ื™ื‘ ืึทื–ืึท ืฉื˜ื™ืœืงื™ื™ึทื˜ ื™ื‘ืขืจืฉืจืขืงืŸ ืื™ืจ ืื•ืŸ ืื™ืจ ื•ื•ื™ืœืŸ ืึท ื‘ื™ืกืœ ืžืขืจ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ, ืื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ื“ื™ ืœื™ื˜ืขืจ ืžื™ื˜ ื“ื™ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื•ื•ื™ื“ืขืจืงืึธืœ ื‘ืึทืคึฟืขืœ ื“ื•ืจืš ืึท ื˜ืึธืคึผืœ ืึทืžืคึผืขืจืกืึทื ื“ (&&), ื•ื•ื™ ื“ืึธืก:

$ yamllint perfect.yaml && echo "OK"
OK

ืื™ืŸ POSIX, ืึท ื˜ืึธืคึผืœ ืึทืžืคึผืขืจืกืึทื ื“ ืคื™ืจืขืก ืื•ื™ื‘ ืื•ืŸ ื‘ืœื•ื™ื– ืื•ื™ื‘ ื“ื™ ืคึผืจื™ืกื™ื“ื™ื ื’ ื‘ืึทืคึฟืขืœ ืงืขืจื˜ 0. ืื•ืŸ ื™ืึทืžืœืœื™ื ื˜ ื ืึธืจ ืงืขืจื˜ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืจืจืึธืจืก ื’ืขืคึฟื•ื ืขืŸ, ื•ื•ืึธืก ืื™ื– ื•ื•ืึธืก ื“ื™ ื’ืื ืฆืข ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืงืึทื ืกื˜ืจืึทืงื˜ ืึทืจื‘ืขื˜.

2. ืฉืจื™ื™ื‘ ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ, ื ื™ืฉื˜ ื™ืึทืžืœ

ืื•ื™ื‘ ื™ืืžืœ ืคืจืขื’ื˜ ื“ื™ืš ื‘ืืžืช, ืฉืจื™ื™ื‘ ื ืืจ ื ื™ืฉื˜ ืื™ืŸ ื“ืขื, ืžืžืฉ. ืขืก ื›ืึทืคึผืึทื ื– ืึทื– YAML ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ืคึฟืึธืจืžืึทื˜ ื•ื•ืึธืก ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืืจืฉื˜ื™ื™ื˜. ืึธื‘ืขืจ ืืคื™ืœื• ืื™ืŸ ื“ืขื ืคืึทืœ, ืขืก ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง ืฆื• ืฉืึทืคึฟืŸ ืึท YAML ื˜ืขืงืข. ืฉืจื™ื™ื‘ ืื•ื™ืฃ ื•ื•ืึธืก ืื™ืจ ื•ื•ื™ ืื•ืŸ ื“ืขืžืึธืœื˜ ื’ืขืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืึท ื’ืจื•ื™ืก ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคึฟืึทืจ ืคึผื™ื˜ื”ืึธืŸ pyyaml ืื•ืŸ ืฆื•ื•ื™ื™ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืžืขื˜ื”ืึธื“ืก: ื–ื™ืš-ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืื•ืŸ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ื“ื•ืจืš ืกืงืจื™ืคึผืก.

ื–ื™ืš-ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ

ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ ื“ืึทื˜ืŸ ื˜ืขืงืข ืื™ื– ืื•ื™ืš ืึท ืคึผื™ื˜ื”ืึธืŸ ืฉืจื™ืคื˜ ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ืฅ YAML. ื“ืขื ืื•ืคึฟืŸ ืื™ื– ื‘ืขืกื˜ืขืจ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืงืœื™ื™ืŸ ื“ืึทื˜ืŸ ืฉื˜ืขืœื˜. ืื™ืจ ืคืฉื•ื˜ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ JSON ื“ืึทื˜ืŸ ืื™ืŸ ืึท ืคึผื™ื˜ื”ืึธืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœ, ืคึผืจื™ืคืึทืกืขืก ืขืก ืžื™ื˜ ืึท ืึทืจื™ื™ึทื ืคื™ืจ ื“ื™ืจืขืงื˜ื™ื•ื•, ืื•ืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ื˜ืขืงืข ืœื™ื™ื’ืŸ ื“ืจื™ื™ ืฉื•ืจื•ืช ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜.

#!/usr/bin/python3	
import yaml 

d={
"glossary": {
  "title": "example glossary",
  "GlossDiv": {
	"title": "S",
	"GlossList": {
	  "GlossEntry": {
		"ID": "SGML",
		"SortAs": "SGML",
		"GlossTerm": "Standard Generalized Markup Language",
		"Acronym": "SGML",
		"Abbrev": "ISO 8879:1986",
		"GlossDef": {
		  "para": "A meta-markup language, used to create markup languages such as DocBook.",
		  "GlossSeeAlso": ["GML", "XML"]
		  },
		"GlossSee": "markup"
		}
	  }
	}
  }
}

f=open('output.yaml','w')
f.write(yaml.dump(d))
f.close

ืื™ืฆื˜ ืžื™ืจ ืœื•ื™ืคืŸ ื“ืขื ื˜ืขืงืข ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ output.yaml ื˜ืขืงืข:

$ python3 ./example.json
$ cat output.yaml
glossary:
  GlossDiv:
	GlossList:
	  GlossEntry:
		Abbrev: ISO 8879:1986
		Acronym: SGML
		GlossDef:
		  GlossSeeAlso: [GML, XML]
		  para: A meta-markup language, used to create markup languages such as DocBook.
		GlossSee: markup
		GlossTerm: Standard Generalized Markup Language
		ID: SGML
		SortAs: SGML
	title: S
  title: example glossary

ื“ืึธืก ืื™ื– ื‘ื™ืฉืœื™ื™ืžืขืก ื’ื™ืœื˜ื™ืง YAML, ืึธื‘ืขืจ ื™ืึทืžืœืœื™ื ื˜ ื•ื•ืขื˜ ื•ื•ืึธืจืขื ืขืŸ ืื™ืจ ืึทื– ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ -. ื ื•, ื“ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ื›ื˜ ืงืขืจืขืงื˜ืึทื“ ืžืึทื ื™ื•ืึทืœื™ ืึธื“ืขืจ ืึท ื‘ื™ืกืœ ืžืึทื“ืึทืคื™ื™ื“ ืื™ืŸ ื“ื™ ืคึผื™ื˜ื”ืึธืŸ ืฉืจื™ืคื˜.

ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ื“ื•ืจืš ืกืงืจื™ืคึผืก

ืื™ืŸ ื“ืขื ืคืึทืœ, ืžื™ืจ ืขืจืฉื˜ืขืจ ืฉืจื™ื™ึทื‘ืŸ ืื™ืŸ JSON, ืื•ืŸ ื“ืขืžืึธืœื˜ ืœื•ื™ืคืŸ ื“ื™ ืงืึทื ื•ื•ืขืจื˜ืขืจ ื•ื•ื™ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคึผื™ื˜ื”ืึธืŸ ืฉืจื™ืคื˜, ื•ื•ืึธืก ื˜ืจืื’ื˜ YAML ื•ื•ื™ ืจืขื–ื•ืœื˜ืึทื˜. ืงืึทืžืคึผืขืจื“ ืฆื• ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืื•ืคึฟืŸ, ื“ืขื ืื•ืคึฟืŸ ื•ื•ืึธื’ ื‘ืขืกืขืจ, ื•ื•ื™ื™ึทืœ ื“ื™ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืื™ื– ื‘ืึทื–ื•ื ื“ืขืจ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ.

ืขืจืฉื˜ืขืจ, ืœืึธื–ืŸ ืื•ื ื“ื– ืฉืึทืคึฟืŸ ืึท JSON ื˜ืขืงืข example.json, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ื ืขืžืขืŸ ืขืก ืคึฟื•ืŸ json.org:

{
	"glossary": {
	  "title": "example glossary",
	  "GlossDiv": {
		"title": "S",
		"GlossList": {
		  "GlossEntry": {
			"ID": "SGML",
			"SortAs": "SGML",
			"GlossTerm": "Standard Generalized Markup Language",
			"Acronym": "SGML",
			"Abbrev": "ISO 8879:1986",
			"GlossDef": {
			  "para": "A meta-markup language, used to create markup languages such as DocBook.",
			  "GlossSeeAlso": ["GML", "XML"]
			  },
			"GlossSee": "markup"
			}
		  }
		}
	  }
	}

ื“ืขืจื ืึธืš ืžื™ืจ ืžืึทื›ืŸ ืึท ืคึผืฉื•ื˜ ืงืึทื ื•ื•ืขืจื˜ืขืจ ืฉืจื™ืคื˜ ืื•ืŸ ืจืึทื˜ืขื•ื•ืขืŸ ืขืก ืื•ื ื˜ืขืจ ื“ื™ ื ืึธืžืขืŸ json2yaml.py. ื“ืขืจ ืฉืจื™ืคื˜ ื™ืžืคึผืึธืจืฅ ื‘ื™ื™ื“ืข ื™ืึทืžืœ ืื•ืŸ ื“ื–ืฉืกืึธืŸ ืคึผื™ื˜ื”ืึธืŸ ืžืึทื“ื–ืฉื•ืœื–, ืื•ืŸ ืœืึธื•ื“ื– ืึท ื‘ืึทื ื™ืฆืขืจ-ืกืคึผืขืกื™ืคื™ืขื“ ื“ื–ืฉืกืึธืŸ ื˜ืขืงืข, ืคึผืขืจืคืึธืจืžื– ื“ื™ ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ, ืื•ืŸ ืฉืจื™ื™ื‘ื˜ ื“ื™ ื“ืึทื˜ืŸ ืฆื• ื“ื™ output.yaml ื˜ืขืงืข.

#!/usr/bin/python3
import yaml
import sys
import json

OUT=open('output.yaml','w')
IN=open(sys.argv[1], 'r')

JSON = json.load(IN)
IN.close()
yaml.dump(JSON, OUT)
OUT.close()

ื”ื™ื˜ ื“ืขื ืฉืจื™ืคื˜ ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื ื“ืจืš ืื•ืŸ ืœื•ื™ืคืŸ ืขืก ื•ื•ื™ ื“ืืจืฃ:

$ ~/bin/json2yaml.py example.json

3. ืคึผืึทืจืก ืึท ืคึผืœืึทืฅ ืื•ืŸ ืึธืคื˜

ืžืืœ ืขืก ืื™ื– ื ื•ืฆืœืขืš ืฆื• ืงื•ืงืŸ ืื™ืŸ ืึท ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืึท ืึทื ื“ืขืจืฉ ื•ื•ื™ื ืงืœ. ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืงืึธื ืคืœื™ืงื˜ ืจืขืคึผืจื™ื–ืขื ื˜ื™ื ื’ ื“ื™ ื‘ืึทืฆื™ื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ื™ืŸ ื“ืึทื˜ืŸ ืื™ืŸ YAML, ืื™ืจ ืงืขื ืขืŸ ื˜ืขืžืคึผืขืจืขืจืึทืœื™ ื™ื‘ืขืจืžืึทื›ืŸ ืขืก ืื™ืŸ ืขืคึผืขืก ืžืขืจ ื‘ืึทืงืึทื ื˜.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ื‘ืึทืงื•ื•ืขื ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื•ื•ืขืจื˜ืขืจื‘ื•ืš ืจืฉื™ืžื•ืช ืึธื“ืขืจ JSON, ืื™ืจ ืงืขื ืขืŸ ื’ืขืจ YAML ืฆื• JSON ืžื™ื˜ ื‘ืœื•ื™ื– ืฆื•ื•ื™ื™ ืงืึทืžืึทื ื“ื– ืื™ืŸ ื“ื™ ื™ื ื˜ืขืจืึทืงื˜ื™ื•ื• ืคึผื™ื˜ื”ืึธืŸ ืฉืึธืœ. ื–ืืœ ืก ื–ืึธื’ืŸ ืื™ืจ ื”ืึธื‘ืŸ ืึท YAML ื˜ืขืงืข mydata.yaml, ื“ืึธืก ืื™ื– ื•ื•ื™ ืขืก ื•ื•ืึธืœื˜ ืงื•ืงืŸ ื•ื•ื™:

$ python3
>>> f=open('mydata.yaml','r')
>>> yaml.load(f)
{'document': 34843, 'date': datetime.date(2019, 5, 23), 'bill-to': {'given': 'Seth', 'family': 'Kenlon', 'address': {'street': '51b Mornington Roadn', 'city': 'Brooklyn', 'state': 'Wellington', 'postal': 6021, 'country': 'NZ'}}, 'words': 938, 'comments': 'Good article. Could be better.'}

ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ืคื™ืœืข ืื ื“ืขืจืข ื‘ื™ื™ืฉืคื™ืœืŸ ืื•ื™ืฃ ื“ืขื ื˜ืขืžืข. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืึธื ืœื™ื™ืŸ ืงืึทื ื•ื•ืขืจื˜ืขืจื– ืื•ืŸ ื”ื™ื’ืข ืคึผืึทืจืกืขืจื– ื‘ื ื™ืžืฆื. ืึทื–ื•ื™ ื˜ืึธืŸ ื ื™ื˜ ืงื•ื•ืขื ืงืœืขืŸ ืฆื• ืจืขืคืึธืจืžืึทื˜ ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขืŸ ืื™ืจ ื–ืขืŸ ื‘ืœื•ื™ื– ืึท ื™ื ื’ืงืึทืžืคึผืจืึทื›ืขื ืกื™ื‘ืึทืœ ืฆืขืžื™ืฉื•ื ื’ ืื™ืŸ ืขืก.

4. ืœื™ื™ืขื ืขืŸ ื“ื™ ืกืคึผืขืงืก

ืฆื•ืจื™ืง ืฆื• YAML ื ืึธืš ืึท ืœืึทื ื’ ื‘ืจืขื›ืŸ, ืขืก ืื™ื– ื ื•ืฆื™ืง ืฆื• ื‘ืึทื–ื•ื›ืŸ yaml.org ืื•ืŸ ืœื™ื™ืขื ืขืŸ ื“ื™ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– (ืกืคึผืขืงืก). ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ ืžื™ื˜ YAML, ืึธื‘ืขืจ ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’, ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ื“ืขื ืกื™ื˜ื•ืึทืฆื™ืข. ื“ื™ ืกืคึผืขืงืก ื–ืขื ืขืŸ ืกืึทืคึผืจื™ื™ื–ื™ื ื’ืœื™ ื’ืจื™ื ื’ ืฆื• ืฉืจื™ื™ึทื‘ืŸ, ืื•ืŸ ื“ื™ ืกื™ื ื˜ืึทืงืก ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื–ืขื ืขืŸ ื™ืœืึทืกื˜ืจื™ื™ื˜ื™ื“ ืžื™ื˜ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืื™ืŸ ืงืืคื™ื˜ืœ 6.

5. ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื ืคื™ื’ืก

ื•ื•ืขืŸ ืฉืจื™ื™ื‘ืŸ ืึท ื‘ื•ืš ืึธื“ืขืจ ืึทืจื˜ื™ืงืœ, ืขืก ืื™ื– ืฉื˜ืขื ื“ื™ืง ื ื•ืฆื™ืง ืฆื• ืขืจืฉื˜ืขืจ ืกืงื™ืฆืข ืื•ื™ืก ืึท ืคึผืจื™ืœื™ืžืึทื ืขืจื™ ืึทื•ื˜ืœื™ื™ืŸ, ืœืคึผื—ื•ืช ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืื™ื ื”ืึทืœื˜. ื“ืึธืก ืื™ื– ื“ื™ ื–ืขืœื‘ืข ืžื™ื˜ YAML. ืจื•ื‘ึฟ ืžืกืชึผืžื, ืื™ืจ ื”ืึธื˜ ืึท ื’ืขื“ืึทื ืง ืคื•ืŸ ื•ื•ืึธืก ื“ืึทื˜ืŸ ื“ืึทืจืฃ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ืึท YAML ื˜ืขืงืข, ืึธื‘ืขืจ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื˜ืึทืงืข ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืขืก ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ. ื“ืขืจื™ื‘ืขืจ, ืื™ื™ื“ืขืจ ืกืงืึทืœืคึผื˜ื™ื ื’ ื™ืžืœ, ืฆื™ืขืŸ ืึท ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื ืคื™ื’.

ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื ืคื™ื’ ืื™ื– ืขื ืœืขืš ืฆื• ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื“, ื•ื•ื• ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื–ืึธืจื’ ื•ื•ืขื’ืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืึธื“ืขืจ ื™ื ื“ืขื ื˜ื™ื™ืฉืึทืŸ, ืขืœื˜ืขืจืŸ-ืงื™ื ื“ ื‘ืืฆื™ื•ื ื’ืขืŸ, ื™ืจื•ืฉื” ืื•ืŸ ื ืขืกื˜ื™ื ื’. ื“ืึธืก ืื™ื– ื“ื™ ื–ืขืœื‘ืข ื“ืึธ: ืื™ืจ ืฆื™ืขืŸ ื™ื˜ืขืจื™ื™ืฉืึทื ื– ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื•ื•ื™ ื–ื™ื™ ืฉื˜ื™ื™ืขืŸ ืื™ืŸ ื“ื™ื™ืŸ ืงืึธืคึผ.

10 ื˜ืจื™ื˜ ืฆื• YAML Zen

ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื ืคื™ื’ ืจืฉื™ืžื” ืคึผืจืึธื•ื’ืจืึทืžืขืจื– (ืžืืจื˜ื™ืŸ ืื•ืŸ ื˜ืึทื‘ื™ื˜ื”ืึท) ืื•ืŸ ื–ื™ื™ืขืจ ืกืงื™ืœื– (ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ: ืคึผื™ื˜ื”ืึธืŸ, ืคึผืขืจืœ, ืคึผืึทืกืงืึทืœ ืื•ืŸ ืœื™ืกืคึผ, ืคืึธืจื˜ืจืึทืŸ, ืขืจืœืึทื ื’, ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™).

ื ืึธืš ืฆื™ื™ื›ืขื ื•ื ื’ ืึท ืคึผืกืขื•ื•ื“ืึธ-ืงืึธื ืคื™ื’ ืื•ื™ืฃ ืึท ืฉื˜ื™ืง ืคื•ืŸ ืคึผืึทืคึผื™ืจ, ืงืขืจืคืึทืœื™ ืคื•ื ืึทื ื“ืขืจืงืœื™ื™ึทื‘ืŸ ืขืก ืื•ืŸ, ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ืื™ืŸ ืกื“ืจ, ืคึฟืึธืจืžืึทื˜ ืขืก ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ื’ื™ืœื˜ื™ืง ื™ืึทืžืœ ื˜ืขืงืข.

6. ื“ื™ ื˜ืึทื‘ืก ื•ื•ืก ืกืคึผื™ื™ืกืึทื– ื“ื™ืœืขืžืึท

ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืกืึธืœื•ื•ืข ื“ื™ ื“ื™ืœืขืžืึท "ื˜ืึทื‘ืก ืึธื“ืขืจ ืกืคึผื™ื™ืกืึทื–?". ื ื™ื˜ ืื™ืŸ ืึท ื’ืœืื‘ืืœืข ื–ื™ื ืขืŸ, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ืื•ื™ืฃ ื“ืขืจ ืžื“ืจื’ื” ืคื•ืŸ ื“ื™ื™ืŸ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข, ืึธื“ืขืจ ืœืคึผื—ื•ืช ืึท ืคึผืจื•ื™ืขืงื˜. ืขืก ื˜ื•ื˜ ื ื™ืฉื˜ ืขื ื™ืŸ ืฆื™ ื“ืึธืก ื™ื ื•ื•ืึทืœื•ื•ื– ื ื™ืฆืŸ ืคึผืึธืกื˜-ืคึผืจืึทืกืขืกื™ื ื’ ืžื™ื˜ ืึท ืกืขื“ ืฉืจื™ืคื˜, ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื˜ืขืงืกื˜ ืจืขื“ืืงืฆื™ืข ืื•ื™ืฃ ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ืžืืฉื™ื ืขืŸ, ืึธื“ืขืจ ื™ื•ื ืึทื•ื•ืขืจืกืึทืœื™ ื ืขืžืขืŸ ืจื™ืกื™ืฅ ืคื•ืŸ ืฉื˜ืจืขื ื’ ื ืึธื›ืงื•ืžืขืŸ ืžื™ื˜ ื“ื™ ืœื™ื™ื ื˜ืขืจ ืก ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืื•ื ื˜ืขืจ ืกืึทืงืึธื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ืกืžื™ืกืึทืœ, ืึธื‘ืขืจ ืึทืœืข ืžื™ื˜ื’ืœื™ื“ืขืจ ืคื•ืŸ ื“ื™ื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ื•ื•ืึธืก ืื™ื™ืŸ ื•ื•ืขื’ ืึธื“ืขืจ ืื ื“ืขืจืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ื™ืžืœ ืžื•ื–ืŸ ื ื•ืฆืŸ ื‘ืœื•ื™ื– ืกืคึผื™ื™ืกืึทื– (ื•ื•ื™ ืคืืจืœืื ื’ื˜ ื“ื•ืจืš ื“ื™ ื™ืžืœ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’).

ืื™ืŸ ืงื™ื™ืŸ ื ืึธืจืžืึทืœ ื˜ืขืงืกื˜ ืจืขื“ืึทืงื˜ืึธืจ, ืื™ืจ ืงืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืึทื•ื˜ืึธ-ืจื™ื›ื˜ื™ืง ื˜ืึทื‘ืก ืฆื• ืึท ืกืคึผืขืกื™ืคื™ืขื“ ื ื•ืžืขืจ ืคื•ืŸ ืกืคึผื™ื™ืกืึทื–, ืึทื–ื•ื™ ื“ื™ ืžืจื™ื“ื” ืคื•ืŸ ืฉืœื™ืกืœ ืื ื”ืขื ื’ืขืจืก ืงื•ื•ื™ื˜ืœ ื“ื• ื“ืืจืคืกื˜ ื ื™ืฉื˜ ืžื•ืจื ื”ืื‘ืŸ.

ื•ื•ื™ ื™ืขื“ืขืจ ื™ืึทืž"ืœ ื”ืึทืกืขืจ ื•ื•ื™ื™ืกื˜ ื’ื•ื˜, ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื–ืขืŸ ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ ื˜ืึทื‘ืก ืื•ืŸ ืกืคึผื™ื™ืกืึทื– ืื•ื™ืฃ ืคืึทืจืฉื˜ืขืœืŸ. ืื•ืŸ ื•ื•ืขืŸ ืขืคึผืขืก ืื™ื– ื ื™ื˜ ืงืขื ื˜ื™ืง, ืขืก ืื™ื– ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื“ื™ ืœืขืฆื˜ืข ื–ืึทืš ื•ื•ืึธืก ืžืขื ื˜ืฉืŸ ื’ืขื“ืขื ืงืขืŸ, ื ืึธืš ื–ื™ื™ ื”ืึธื‘ืŸ ืกืึธืจื˜ื™ื“ ื“ื•ืจืš, ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืื•ืŸ ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“ ืึทืœืข ืื ื“ืขืจืข ืžืขื’ืœืขืš ืคึผืจืึธื‘ืœืขืžืก. ื ืฉืขื” ืคื•ืŸ ืฆื™ื™ื˜ ืคืืจื‘ืจืื›ื˜ ื–ื•ื›ืŸ ืคึฟืึทืจ ืึท ื˜ืึทื‘ื•ืœืึทื˜ื™ืึธืŸ ื•ื™ืกื‘ื™ื™ื’ ืึธื“ืขืจ ืึท ื‘ืœืึธืง ืคื•ืŸ ืกืคึผื™ื™ืกืึทื– ืคืฉื•ื˜ ืกืงืจื™ืžื– ืึทื– ืื™ืจ ื“ืจื™ื ื’ืœืขืš ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ืคึผืึธืœื™ื˜ื™ืง ืคึฟืึทืจ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืื™ื™ื ืขืจ ืึธื“ืขืจ ื“ื™ ืื ื“ืขืจืข, ืื•ืŸ ื“ืขืžืึธืœื˜ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ืจื™ื™ื ืคืึธืจืกื˜ ื‘ืึทื˜ืึธื ืขืŸ ื˜ืฉืขืง ืคึฟืึทืจ ื”ืขืกืงืขื ืžื™ื˜ ืขืก (ืœืžืฉืœ, ื“ื•ืจืš ืึท ื’ื™ื˜ ืงืจื•ืง ืฆื• ืฆื•ื•ื™ื ื’ืขืŸ ืขืก ื“ื•ืจืš ืึท ืœื™ื ื˜ืขืจ).

7. ื•ื•ื™ื™ื ื™ืงืขืจ ืื™ื– ืžืขืจ (ืึธื“ืขืจ ืžืขืจ ืื™ื– ื•ื•ื™ื™ื ื™ืงืขืจ)

ืขื˜ืœืขื›ืข ืžืขื ื˜ืฉืŸ ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืื™ืŸ YAML ื•ื•ื™ื™ึทืœ ืขืก ืขืžืคืึทืกื™ื™ื–ื™ื– ืกื˜ืจื•ืงื˜ื•ืจ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ื–ื™ื™ ืึทืงื˜ื™ื•ื•ืœื™ ื ื•ืฆืŸ ื™ื ื“ืขื ื˜ื™ื™ืฉืึทืŸ ืฆื• ื”ื•ื™ื›ืคึผื•ื ืงื˜ ื‘ืœืึทืงืก ืคื•ืŸ ื“ืึทื˜ืŸ. ื“ืึธืก ืื™ื– ืžื™ืŸ ืคื•ืŸ ืึท ืกืงืึทื ืฆื• ื ืึธื›ืžืึทื›ืŸ ืžืึทืจืงืึทืคึผ ืฉืคึผืจืึทื›ืŸ ื•ื•ืึธืก ื ื•ืฆืŸ ื™ืงืกืคึผืœื™ืกืึทื˜ ื“ืขืœื™ืžืึทื˜ืขืจื–.

ื“ืึธ ืื™ื– ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึทื–ืึท ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึทื ืึทื‘ืึทืœ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ:

# Employee records
-  martin:
        name: Martin D'vloper
        job: Developer
        skills:
            - python
            - perl
            - pascal
-  tabitha:
        name: Tabitha Bitumen
        job: Developer
        skills:
            - lisp
            - fortran
            - erlang

ืคึฟืึทืจ ืขื˜ืœืขื›ืข, ื“ื™ ืึธืคึผืฆื™ืข ื”ืขืœืคึผืก ื–ื™ื™ ืฆื• ื•ื™ืกื˜ื™ื™ืœืŸ ื“ื™ ื™ืึทืž"ืœ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ืŸ ื–ื™ื™ืขืจ ืงืขืค, ืคึฟืึทืจ ืื ื“ืขืจืข, ืคืึทืจืงืขืจื˜, ืขืก ื™ืจื™ื˜ื™ื™ืฅ ื–ื™ื™ ืžื™ื˜ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื•ืžื ื™ื™ื˜ื™ืง, ืœื•ื™ื˜ ื–ื™ื™ืขืจ ืžื™ื™ื ื•ื ื’, ื™ื ื“ืขื ืฅ.

ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ื“ื™ YAML ื“ืึธืงื•ืžืขื ื˜ ืื•ืŸ ืื™ืจ ื–ืขื ื˜ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื”ืึทืœื˜ืŸ ืขืก ืื™ืจ ืื•ืŸ ื ืึธืจ ืื™ืจ ืžื•ื–ืŸ ื“ืขืคื™ื ื™ืจืŸ ื•ื•ื™ ืฆื• ื ื•ืฆืŸ ื™ื ื“ืขื ื˜ื™ื™ืฉืึทืŸ. ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืึทื ื•ื™ื“ ื“ื•ืจืš ื’ืจื•ื™ืก ื•ื•ืึทื˜ืŸ, ื”ืึทืœื˜ืŸ ืขืก ืฆื• ื“ื™ ืžื™ื ื™ืžื•ื ืžืขื’ืœืขืš ืœื•ื™ื˜ ื“ื™ YAML ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืื•ื™ื‘ืŸ ื˜ืขืงืข ืคึฟื•ืŸ ื“ื™ Ansible ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ืจื™ื™ื˜ ื•ื•ื™ ื“ืึธืก ืึธืŸ ืงื™ื™ืŸ ืึธื ื•ื•ืขืจ:

---
- martin:
   name: Martin D'vloper
   job: Developer
   skills:
   - python
   - perl
   - pascal
- tabitha:
   name: Tabitha Bitumen
   job: Developer
   skills:
   - lisp
   - fortran
   - erlang

8. ื ื™ืฆืŸ ื‘ืœืึทื ืงืก

ืื•ื™ื‘ ืื™ืจ ืงืขืกื™ื™ื“ืขืจ ืื™ื‘ืขืจื—ื–ืจืŸ ื“ื™ ื–ืขืœื‘ืข ืžื™ืกื˜ื™ื™ืงืก ื•ื•ืขืŸ ืื™ืจ ืคึผืœืึธืžื‘ื™ืจืŸ ืึท YAML ื˜ืขืงืข, ืขืก ืžืื›ื˜ ื–ื™ื ืขืŸ ืฆื• ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืึท ืžื•ืกื˜ืขืจ ืื™ืŸ ืขืก ื•ื•ื™ ืึท ื‘ืึทืžืขืจืงื•ื ื’. ื“ืขืจื ืึธืš ืื™ืจ ืงืขื ื˜ ื ืึธืจ ื ืึธื›ืžืึทื›ืŸ ื“ืขื ืžื•ืกื˜ืขืจ ืื•ืŸ ืึทืจื™ื™ึทืŸ ืคืึทืงื˜ื™ืฉ ื“ืึทื˜ืŸ ื“ืึธืจื˜, ืœืžืฉืœ:

---
# - <common name>:
#   name: Given Surname
#   job: JOB
#   skills:
#   - LANG
- martin:
  name: Martin D'vloper
  job: Developer
  skills:
  - python
  - perl
  - pascal
- tabitha:
  name: Tabitha Bitumen
  job: Developer
  skills:
  - lisp
  - fortran
  - erlang

9. ื ื™ืฆืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ

ืื•ื™ื‘ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืึท ืกื˜ืจืึทื ื’ื›ืึธื•ืœื“ ืื•ื™ืฃ ืื™ืจ, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื•ื•ืขืจื˜ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ YAML ืฆื• ืึท ืึทื ื“ืขืจืฉ ืคึฟืึธืจืžืึทื˜. ืื™ื‘ืขืจ ืฆื™ื™ึทื˜, ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก ืงืขื ืขืŸ ืึทื•ื˜ื’ืจืึธื• ื–ื™ืš ืื•ืŸ ื“ืขืžืึธืœื˜ ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ื’ืขืจ ื–ื™ื™ ืื™ืŸ ืคึผืฉื•ื˜ ืกืงืจื™ืคึผืก ืื™ืŸ ืœื•ืึท ืึธื“ืขืจ ืคึผื™ื˜ื”ืึธืŸ.

YAML ืื™ื– ืึท ื’ืจื•ื™ืก ื–ืึทืš ื•ื•ืึธืก ืคื™ืœืข ืžืขื ื˜ืฉืŸ ืœื™ื‘ืข ืคึฟืึทืจ ื–ื™ื™ึทืŸ ืžื™ื ืึทืžืึทืœื™ื–ืึทื ืื•ืŸ ืคึผืึทืฉื˜ืขืก, ืึธื‘ืขืจ ืขืก ืื™ื– ื•ื•ื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ื‘ืœื•ื™ื– ื’ืขืฆื™ื™ึทื’ ืื™ืŸ ื“ื™ื™ืŸ ืึทืจืกืขื ืึทืœ. ืึทื–ื•ื™ ืžืืœ ืื™ืจ ืงืขื ืขืŸ ืึธืคึผื–ืึธื’ืŸ ืขืก. ืคึผืึทืจืกื™ื ื’ ืœื™ื‘ืจืึทืจื™ืขืก ื–ืขื ืขืŸ ื’ืจื™ื ื’ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืคึฟืึทืจ YAML, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืจ ืคืึธืจืฉืœืึธื’ืŸ ื’ืจื™ื ื’ ืžื™ื’ืจืึทื˜ื™ืึธืŸ ืึธืคึผืฆื™ืขืก, ื“ื™ื™ืŸ ื™ื•ื–ืขืจื– ื•ื•ืขื˜ ื‘ืœื™ื™ึทื‘ื  ืœืขื‘ืŸ ื“ืขื ื“ื•ืจื›ืคืึทืœ ืœืขืคื™ืขืจืขืš ืคึผื™ื™ื ืœืึทืกืœื™.

ืื•ื™ื‘ ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื˜ืึธืŸ ืึธืŸ ื™ืžืœ, ื ืขืžืขืŸ ื“ื™ 10 ืขืฆื•ืช ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ื™ืŸ ื•ืžื›ื™ื™ืŸ ืคื•ืŸ ื™ืžืœ ืึทืžืึธืœ ืื•ืŸ ืคึฟืึทืจ ืึทืœืข!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’