YAML āĻœā§‡āĻ¨ā§‡āĻ° 10 āĻ§āĻžāĻĒ

āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦāĻžāĻ‡ Ansible āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ Ansible āĻšāĻ˛ YAMLāĨ¤ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž, āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°-āĻŽāĻžāĻ¨ āĻœā§‹āĻĄāĻŧāĻž, INI āĻĢāĻžāĻ‡āĻ˛, YAML, JSON, XML āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ•āĻ—ā§āĻ˛āĻŋā§ˇ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•āĻžāĻ°āĻŖā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ•āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡, YAML āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ•āĻ āĻŋāĻ¨ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡, āĻāĻ° āĻ¸āĻ¤ā§‡āĻœāĻ•āĻ° āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽāĻ¤āĻž āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ•ā§āĻ°āĻŽāĻŋāĻ• āĻŽāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻšāĻŋāĻ¤ā§āĻ¤āĻžāĻ•āĻ°ā§āĻˇāĻ• āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻĨāĻžāĻ•āĻž āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§‡āĻ“, YAML āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸āĻŸāĻŋ āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤āĻŋāĻ•āĻ° āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

YAML āĻœā§‡āĻ¨ā§‡āĻ° 10 āĻ§āĻžāĻĒ

āĻ¯āĻĻāĻŋ YAML āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ - āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ‰āĻšāĻŋāĻ¤! - āĻ—ā§āĻ°āĻšāĻŖāĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻœā§āĻŦāĻžāĻ˛āĻž āĻ•āĻŽāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ YAML āĻ•ā§‡ āĻ­āĻžāĻ˛āĻŦāĻžāĻ¸āĻ¤ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ 10āĻŸāĻŋ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ¨āĻŋāĻ¨āĨ¤ āĻāĻ‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ‰āĻĒāĻ¯ā§‹āĻ—ā§€ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĻāĻļāĻŸāĻŋ āĻŸāĻŋāĻĒāĻ¸ āĻ¸ā§āĻ•ā§āĻ°ā§āĻ¯āĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŽā§āĻŦāĻ° āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡, āĻ†āĻŽāĻ°āĻž āĻ‡āĻšā§āĻ›āĻžāĻŽāĻ¤ā§‹ āĻ§ā§āĻ¯āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻ§ā§āĻ¯āĻžāĻ¤ā§āĻŽāĻŋāĻ• āĻ…āĻ¨ā§āĻļā§€āĻ˛āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋ 😉

0. āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻ•āĻžāĻœ āĻ•āĻ°ā§āĻ¨

āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ•ā§‹āĻ¨ āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻ†āĻ›ā§‡ āĻ¤āĻž āĻŦāĻŋāĻŦā§‡āĻšā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ āĻāĻ•āĻŸāĻŋ YAML āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻ–ā§āĻāĻœā§āĻ¨ āĻāĻŦāĻ‚ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° YAML āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻ¨ā§‡āĻ•āĻŦāĻžāĻ° āĻĒāĻ°āĻŋāĻļā§‹āĻ§ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻĒāĻ°āĻŽāĻžāĻŖā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ YAML āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ GNU Emacs-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, yaml-āĻŽā§‹āĻĄ.

YAML āĻœā§‡āĻ¨ā§‡āĻ° 10 āĻ§āĻžāĻĒ

YAML āĻŽā§‹āĻĄā§‡ Emacs āĻāĻŦāĻ‚ āĻ¸ā§āĻĒā§‡āĻ¸ āĻĻā§‡āĻ–āĻžāĻšā§āĻ›ā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•ā§‡āĻ° āĻ¯āĻĻāĻŋ YAML āĻŽā§‹āĻĄ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, GNOME, Gedit-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•ā§‡āĻ° YAML āĻŽā§‹āĻĄ āĻ¨ā§‡āĻ‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻāĻŸāĻŋ YAML āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ:

YAML āĻœā§‡āĻ¨ā§‡āĻ° 10 āĻ§āĻžāĻĒ

Gedit-āĻ āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻžāĨ¤

āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻĄā§āĻ° āĻ¸ā§āĻĒā§‡āĻ¸ Gedit-āĻāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻŸāĻŋ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸ā§āĻĒā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°ā§‡, āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻž āĻĻā§‚āĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ…āĻ¨ā§āĻ¯ āĻ•āĻĨāĻžāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ• āĻļāĻŋāĻ–āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¨āĨ¤ YAML āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻŋāĻ¨āĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧ āĻ•ā§€ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¸ā§āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻĻā§āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻļā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¨āĻž.

1. āĻāĻ•āĻŸāĻŋ āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨

āĻ†āĻĻāĻ°ā§āĻļāĻ­āĻžāĻŦā§‡, āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž āĻāĻŦāĻ‚ āĻŽāĻžāĻ°ā§āĻ•āĻ†āĻĒ āĻ­āĻžāĻˇāĻžāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻĻā§āĻŦāĻžāĻŖā§€āĻ¤ā§‡ āĻ­āĻžāĻ˛, āĻ¯ā§‡ āĻ•āĻžāĻ°āĻŖā§‡ 1978 āĻ¸āĻžāĻ˛ā§‡ āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻ‰āĻ¤ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ°. āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋāĻ° āĻ…āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦā§‡āĻ° 40 āĻŦāĻ›āĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻ¨āĻ“ YAML āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ‡āĻ¯āĻŧāĻžāĻŽāĻ˛āĻŋāĻ¨ā§āĻŸ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ‡āĻ¯āĻŧāĻžāĻŽāĻ˛āĻŋāĻ¨ā§āĻŸ āĻ†āĻĒāĻ¨āĻŋ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŽāĻ§ā§āĻ¯ā§‡ Red Hat Enterprise Linux 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 āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻ–āĻ¨ āĻĒāĻ°ā§āĻĻāĻžāĻ¯āĻŧ āĻ•āĻŋāĻ›ā§āĻ‡ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¨ā§€āĻ°āĻŦāĻ¤āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ­āĻ¯āĻŧ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻ°āĻ“ āĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ‡āĻ•ā§‹ āĻ•āĻ¨ā§āĻĄāĻŋāĻļāĻ¨āĻžāĻ˛ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŦāĻ˛ āĻ…ā§āĻ¯āĻžāĻŽā§āĻĒāĻžāĻ°āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄ (&&) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

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

POSIX-āĻ, āĻĄāĻŦāĻ˛ āĻ…ā§āĻ¯āĻžāĻŽā§āĻĒāĻžāĻ°āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻšāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻĻāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ 0 āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŦāĻ‚ yamllint āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¤ā§āĻ°ā§āĻŸāĻŋāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻāĻ‡ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§‡āĻ•ā§āĻˇ āĻ—āĻ āĻ¨ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

2. āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ˛āĻŋāĻ–ā§āĻ¨, YAML āĻ¨āĻ¯āĻŧ

āĻ¯āĻĻāĻŋ YAML āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻ•ā§āĻˇāĻ°āĻŋāĻ• āĻ…āĻ°ā§āĻĨā§‡ āĻāĻŸāĻŋāĻ¤ā§‡ āĻ˛āĻŋāĻ–āĻŦā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻŸāĻŋ āĻ˜āĻŸā§‡ āĻ¯ā§‡ 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, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ yamllint āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°āĻŦā§‡ āĻ¯ā§‡ āĻāĻŸāĻŋ - āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻāĻŸāĻŋ āĻ¸āĻšāĻœā§‡āĻ‡ āĻšāĻžāĻ¤ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻŦāĻž āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻŸā§āĻ‡āĻ• āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°

āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ 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 āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ YAML āĻāĻŦāĻ‚ JSON Python āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°ā§‡, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ JSON āĻĢāĻžāĻ‡āĻ˛ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§‡, āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ 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. Pseudoconfigs

āĻāĻ•āĻŸāĻŋ āĻŦāĻ‡ āĻŦāĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ°ā§‚āĻĒāĻ°ā§‡āĻ–āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¸ā§āĻ•ā§‡āĻš āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž, āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻ¸āĻžāĻ°āĻŖā§€ āĻ†āĻ•āĻžāĻ°ā§‡ā§ˇ YAML āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻ‡āĨ¤ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤, YAML āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ•ā§€ āĻĄā§‡āĻŸāĻž āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻ†āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻ•ā§‡ āĻ…āĻĒāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻ›ā§‡āĻ¨ āĻ¨āĻžāĨ¤ āĻ…āĻ¤āĻāĻŦ, YAML āĻ­āĻžāĻ¸ā§āĻ•āĻ°ā§āĻ¯ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻāĻ•āĻŸāĻŋ āĻ›āĻĻā§āĻŽ-āĻ•āĻ¨āĻĢāĻŋāĻ— āĻ†āĻāĻ•ā§āĻ¨āĨ¤

Pseudoconfig āĻšāĻ˛ pseudocode āĻāĻ° āĻŽāĻ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ—āĻ āĻ¨ āĻŦāĻž āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨, āĻĒāĻŋāĻ¤āĻž-āĻŽāĻžāĻ¤āĻž-āĻ¸āĻ¨ā§āĻ¤āĻžāĻ¨ā§‡āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•, āĻ‰āĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻāĻŦāĻ‚ āĻ¨ā§‡āĻ¸ā§āĻŸāĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚ āĻāĻŸāĻŋ āĻāĻ–āĻžāĻ¨ā§‡: āĻ†āĻĒāĻ¨āĻŋ āĻĄā§‡āĻŸāĻžāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ†āĻāĻ•āĻŦā§‡āĻ¨ āĻ¯ā§‡āĻŽāĻ¨ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

YAML āĻœā§‡āĻ¨ā§‡āĻ° 10 āĻ§āĻžāĻĒ

Pseudoconfig āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ° (āĻŽāĻžāĻ°ā§āĻŸāĻŋāĻ¨ āĻāĻŦāĻ‚ āĻ¤āĻžāĻŦāĻŋāĻĨāĻž) āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĻāĻ•ā§āĻˇāĻ¤āĻž (āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāĻˇāĻž: Python, Perl, Pascal āĻāĻŦāĻ‚ Lisp, Fortran, Erlang, āĻ¯āĻĨāĻžāĻ•ā§āĻ°āĻŽā§‡)āĨ¤

āĻ•āĻžāĻ—āĻœā§‡āĻ° āĻŸā§āĻ•āĻ°ā§‹āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ›āĻĻā§āĻŽ-āĻ•āĻ¨āĻĢāĻŋāĻ— āĻ†āĻāĻ•āĻ˛ā§‡, āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§‡ āĻāĻŸāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚, āĻ¯āĻĻāĻŋ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ āĻŋāĻ•āĻ āĻžāĻ• āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻ§ YAML āĻĢāĻžāĻ‡āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸ āĻ•āĻ°ā§āĻ¨āĨ¤

6. āĻŸā§āĻ¯āĻžāĻŦ āĻŦāĻž āĻ¸ā§āĻĒā§‡āĻ¸ āĻĻā§āĻŦāĻŋāĻ§āĻž

āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻŦāĻŋāĻ§āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ "āĻŸā§āĻ¯āĻžāĻŦ āĻŦāĻž āĻ¸ā§āĻĒā§‡āĻ¸?". āĻŦā§ˆāĻļā§āĻŦāĻŋāĻ• āĻ…āĻ°ā§āĻĨā§‡ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ° āĻ¸ā§āĻ¤āĻ°ā§‡ āĻŦāĻž āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĨ¤ āĻāĻŸāĻž āĻ•ā§‹āĻ¨ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨āĻž āĻ¯ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ sed āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§‹āĻ¸ā§āĻŸ-āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚, āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§‡āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻāĻĄāĻŋāĻŸāĻ° āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž, āĻŦāĻž āĻŦāĻ°āĻ–āĻžāĻ¸ā§āĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻšā§āĻŽāĻ•āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ•āĻ ā§‹āĻ°āĻ­āĻžāĻŦā§‡ āĻŽā§‡āĻ¨ā§‡ āĻšāĻ˛āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ°āĻ¸āĻŋāĻĻ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻœāĻĄāĻŧāĻŋāĻ¤, āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĻāĻ˛ā§‡āĻ° āĻ¸āĻ•āĻ˛ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻ¯āĻžāĻ°āĻž YAML-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻž āĻ•ā§‹āĻ¨ā§‹ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻĒā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (YAML āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€)āĨ¤

āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻāĻĄāĻŋāĻŸāĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻ¸ā§āĻĒā§‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§āĻ¯āĻžāĻŦāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻžāĻ‡ āĻ•ā§€āĻŸāĻŋāĻ° āĻ…āĻ¨ā§āĻ—āĻžāĻŽā§€āĻĻā§‡āĻ° āĻŦāĻŋāĻĻā§āĻ°ā§‹āĻš āĻŸā§āĻ¯āĻžāĻŦ āĻ†āĻĒāĻ¨āĻŋ āĻ­āĻ¯āĻŧ āĻĒāĻžāĻŦā§‡āĻ¨ āĻ¨āĻž.

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ YAML āĻŦāĻŋāĻĻā§āĻŦā§‡āĻˇā§€ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¸āĻšā§‡āĻ¤āĻ¨, āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨ā§‡ āĻŸā§āĻ¯āĻžāĻŦ āĻāĻŦāĻ‚ āĻ¸ā§āĻĒā§‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻ¨ā§‡āĻ‡ā§ˇ āĻāĻŦāĻ‚ āĻ¯āĻ–āĻ¨ āĻ•āĻŋāĻ›ā§ āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ, āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻļā§‡āĻˇ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻĻā§‚āĻ° āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ¯āĻžāĻŦ āĻŦāĻž āĻ¸ā§āĻĒā§‡āĻ¸ āĻŦā§āĻ˛āĻ•ā§‡āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§‡ āĻāĻ• āĻ˜āĻ¨ā§āĻŸāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ•āĻ°āĻž āĻŽāĻžāĻ¤ā§āĻ° āĻšāĻŋā§ŽāĻ•āĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻœāĻ°ā§āĻ°ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¨ā§€āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋāĻ° āĻ¸āĻŽā§āĻŽāĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻ•āĻ‚āĻ•ā§āĻ°āĻŋāĻŸ āĻšā§‡āĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸ āĻšā§āĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ˛āĻŋāĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĻā§ŒāĻĄāĻŧāĻžāĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°ā§āĻ¨)āĨ¤

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 āĻ¨āĻĨāĻŋāĻ° āĻŽāĻžāĻ˛āĻŋāĻ• āĻšāĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻĒāĻ¨āĻŋ āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤ āĻ¯āĻĻāĻŋ āĻŦāĻĄāĻŧ āĻ‡āĻ¨ā§āĻĄā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ°āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡, YAML āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻāĻŸāĻŋāĻ•ā§‡ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¸āĻŽā§āĻ­āĻŦ āĻ°āĻžāĻ–ā§āĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ‰āĻ¤ā§āĻ¤āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻ•ā§āĻˇāĻ¤āĻŋ āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻāĻ­āĻžāĻŦā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§‡āĻ–āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

---
- 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-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¸āĻšāĻœ, āĻ¤āĻžāĻ‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻŽāĻžāĻ‡āĻ—ā§āĻ°ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§‚āĻ˛āĻ•āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻĨāĻžāĻšā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻŦā§‡āĻāĻšā§‡ āĻĨāĻžāĻ•āĻŦā§‡āĻ¨āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ YAML āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻž āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡ 10 āĻŸāĻŋ āĻŸāĻŋāĻĒāĻ¸āĻ•ā§‡ āĻ•āĻžāĻœā§‡ āĻ˛āĻžāĻ—āĻžāĻ¨ āĻāĻŦāĻ‚ YAML-āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…āĻĒāĻ›āĻ¨ā§āĻĻāĻ•ā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻ“ āĻ¸āĻŦā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻžāĻ¸ā§āĻ¤ āĻ•āĻ°ā§āĻ¨!

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨