рд╣рд╛рдореА рд╕рдмреИрд▓рд╛рдИ Ansible рдорди рдкрд░реНрдЫ, рддрд░ Ansible YAML рд╣реЛред рддреНрдпрд╣рд╛рдБ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдврд╛рдБрдЪрд╛рд╣рд░реВ рдЫрдиреН: рдорд╛рдирд╣рд░реВрдХреЛ рд╕реВрдЪреА, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░-рдорд╛рди рдЬреЛрдбреАрд╣рд░реВ, INI рдлрд╛рдЗрд▓рд╣рд░реВ, YAML, JSON, XML рд░ рдЕрдиреНрдп рдзреЗрд░реИред рдЬреЗ рд╣реЛрд╕реН, рддреА рд╕рдмреИ рдордзреНрдпреЗ рдзреЗрд░реИ рдХрд╛рд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, YAML рдкреНрд░рд╛рдп: рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдЧрд╛рд╣реНрд░реЛ рдорд╛рдирд┐рдиреНрдЫред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдХ рдорд╛рдирд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рд╕реНрдлреВрд░реНрддрд┐рджрд╛рдпреА рдиреНрдпреВрдирддрд╛рд╡рд╛рдж рд░ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд╡рдЬреБрдж, YAML рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдпрд╕рдХреЛ рдкрд╛рдЗрдерди-рдЬрд╕реНрддреЛ рдЗрдиреНрдбреЗрдиреНрдЯреЗрд╕рдирдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╕рдБрдЧ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реБрди рд╕рдХреНрдЫред
рдпрджрд┐ YAML рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд┐рд╕рд╛рдм рджрд┐рдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ тАФ рд░ рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ! - рддрдкрд╛рдИрдВрдХреЛ рдирд┐рд░рд╛рд╢рд╛рд▓рд╛рдИ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрддрд░рдорд╛ рдХрдо рдЧрд░реНрди рд░ YAML рд╕рдБрдЧ рдкреНрд░реЗрдордорд╛ рдкрд░реНрди рдирд┐рдореНрди 10 рдЪрд░рдгрд╣рд░реВ рд▓рд┐рдиреБрд╣реЛрд╕реНред рдпрд╕ рд╕реВрдЪреАрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рднрдПрдорд╛, рд╣рд╛рдореНрд░рд╛ рджрд╕ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдЕрдВрдХрд┐рдд рд╣реБрдиреЗрдЫрдиреН, рд╣рд╛рдореА рдзреНрдпрд╛рди рд░ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдЕрднреНрдпрд╛рд╕рд╣рд░реВ рдердкреНрдиреЗрдЫреМрдВ ЁЯШЙ
0. рдЖрдлреНрдиреЛ рд╕рдореНрдкрд╛рджрдХ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН
рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдХреБрди рдкрд╛рда рд╕рдореНрдкрд╛рджрдХ рдЫ рдпрд╕рд▓реЗ рдлрд░рдХ рдкрд╛рд░реНрджреИрди, YAML рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ рдкреНрд▓рдЧрдЗрди рдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдЫреИрди рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВрд▓реЗ YAML рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрдкрд░реНрджрд╛ рдЦреЛрдЬреА рд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдмрд┐рддрд╛рдПрдХреЛ рд╕рдордп рдзреЗрд░реИ рдкрдЯрдХ рдЪреБрдХреНрддрд╛ рд╣реБрдиреЗрдЫред
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рдореНрдкрд╛рджрдХ
YAML рдореЛрдб рд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдкреЗрд╕рдорд╛ Emacsред
рдпрджрд┐ рддрдкрд╛рдИрдВрдХреЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрд╕рдБрдЧ YAML рдореЛрдб рдЫреИрди рднрдиреЗ, рдХреЗрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрд░ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛рдирдХ GNOME рдкрд╛рда рд╕рдореНрдкрд╛рджрдХ Gedit рд╕рдБрдЧ YAML рдореЛрдб рдЫреИрди, рддрд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдпрд╕рд▓реЗ YAML рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрджрдЫ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЗрдиреНрдбреЗрдиреНрдЯреЗрд╕рдирд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:
Gedit рдорд╛ рдЗрдиреНрдбреЗрдиреНрдЯрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрджреИред
рдПрдХ рдкреНрд▓рдЧрдЗрди
рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдЖрдлреНрдиреЛ рдордирдкрд░реНрдиреЗ рд╕рдореНрдкрд╛рджрдХрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд┐рдХреНрди рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред YAML рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрд╕рд▓реЗ рд╡рд╛ рдЙрд╕рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдпрд▓реЗ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗрдХреЛ рдЫ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реН, рд░ рддреА рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИ рдкрдХреНрдХреИ рдкрдирд┐ рдкрдЫреБрддрд╛рдЙрдиреБрд╣реБрдиреЗ рдЫреИрдиред
1. рдПрдХ рд▓рд┐рдиреНрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдЖрджрд░реНрд╢ рд░реВрдкрдорд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ рд░ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рд╣рд░реВрд▓реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдХрдореНрдкреНрдпреБрдЯрд░рд╣рд░реВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдЧрд░реНрдирдорд╛ рд░рд╛рдореНрд░реЛ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛
рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
$ sudo dnf install yamllint
рддреНрдпрд╕реЛ рднрдП рддрдкрд╛рдИрд▓реЗ рдХреЗрд╡рд▓ yamllint рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рдЬрд╛рдБрдЪ рдЧрд░реНрди YAML рдлрд╛рдЗрд▓ рдкрд╛рд╕ рдЧрд░реНрджреИред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ linter рдорд╛ рддреНрд░реБрдЯрд┐ рднрдПрдХреЛ рдлрд╛рдЗрд▓ рдкрд╛рд╕ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
$ 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 рдорд╛, рдПрдХ рдбрдмрд▓ рдПрдореНрдкрд░рд╕реЗрдиреНрдб рдлрд╛рдпрд░ рд╣реБрдиреНрдЫ рдпрджрд┐ рд░ рдЕрдШрд┐рд▓реНрд▓реЛ рдЖрджреЗрд╢рд▓реЗ реж рдлрд░реНрдХрд╛рдЙрдБрдЫ рднрдиреЗ рдорд╛рддреНрд░ред рд░ yamllint рд▓реЗ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдорд╛рддреНрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рд╢рд░реНрдд рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред
2. Python рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН, YAML рд╣реЛрдЗрди
рдпрджрд┐ YAML рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рд╛рдБрдЪреНрдЪреИ рдкрд┐рд╕рд╛рдм рджрд┐рдпреЛ рднрдиреЗ, рддреНрдпрд╕рдорд╛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдкрдорд╛ рдирд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред рдпреЛ рд╣реБрдиреНрдЫ рдХрд┐ YAML рдорд╛рддреНрд░ рдврд╛рдБрдЪрд╛ рд╣реЛ рдЬреБрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдмреБрдЭреНрджрдЫред рддрд░ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкрдирд┐, рдпреЛ YAML рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред рддрдкрд╛рдИрд▓рд╛рдИ рдордирдкрд░реНрдиреЗ рдХреБрд░рд╛рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдкрд╛рдЗрдерди рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫ
рдЖрддреНрдо-рд░реВрдкрд╛рдиреНрддрд░рдг
рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдбрд╛рдЯрд╛ рдлрд╛рдЗрд▓ рдкрдирд┐ 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
рдЕрдм рд╣рд╛рдореА рдпреЛ рдлрд╛рдЗрд▓ Python рдорд╛ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ рд░ 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 рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
{
"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 рдорд╛ рдлрд░реНрдХреЗрд░, рдпреЛ рднреНрд░рдордг рдЧрд░реНрди рдЙрдкрдпреЛрдЧреА рдЫ
5. рдЫрджреНрдо рдХрдиреНрдлрд┐рдЧрд╣рд░реВ
рдкреБрд╕реНрддрдХ рд╡рд╛ рд▓реЗрдЦ рд▓реЗрдЦреНрджрд╛, рдХрдореНрддрд┐рдорд╛ рд╡рд┐рд╖рдпрд╡рд╕реНрддреБрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдХреЛ рд░реВрдкрдорд╛, рдкрд╣рд┐рд▓реЗ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд░реВрдкрд░реЗрдЦрд╛ рд╕реНрдХреЗрдЪ рдЧрд░реНрди рд╕рдзреИрдВ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреНрдЫред YAML рдХреЛ рд╕рд╛рде рдкрдирд┐ рддреНрдпрд╕реНрддреИ рдЫред рд╕рдореНрднрд╡рддрдГ, рддрдкрд╛рдЗрдБрд╕рдБрдЧ YAML рдлрд╛рдЗрд▓рдорд╛ рдХреБрди рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЫ, рддрд░ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдПрдХ рдЕрд░реНрдХрд╛рд╕рдБрдЧ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╡рд╛рд╕реНрддрд╡рдореИ рдмреБрдЭреНрдиреБрд╣реБрдиреНрдиред рддрд╕рд░реНрде, YAML рдХреЛ рдореВрд░реНрддрд┐ рдмрдирд╛рдЙрдиреБ рдЕрдШрд┐, рдЫрджреНрдо рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХреЛрд░реНрдиреБрд╣реЛрд╕реНред
рд╕реНрдпреВрдбреЛ-рдХрдиреНрдлрд┐рдЧ рд╕реНрдпреВрдбреЛ-рдХреЛрдбрд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫ, рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдВрд░рдЪрдирд╛ рд╡рд╛ рдЗрдиреНрдбреЗрдиреНрдЯреЗрд╕рди, рдЕрднрд┐рднрд╛рд╡рдХ-рдмрдЪреНрдЪрд╛ рд╕рдореНрдмрдиреНрдз, рд╡рд┐рд░рд╛рд╕рдд рд░ рдиреЗрд╕реНрдЯрд┐рдЩрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЪрд┐рдиреНрддрд╛ рд▓рд┐рдиреБ рдкрд░реНрджреИрдиред рдпреЛ рдпрд╣рд╛рдБ рдЙрд╕реНрддреИ рдЫ: рддрдкрд╛рдИрдВрд▓реЗ рдбрд╛рдЯрд╛рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рд╣рд░реВ рдХреЛрд░реНрдиреБрд╣реЛрд╕реН рдЬрдм рддрд┐рдиреАрд╣рд░реВ рддрдкрд╛рдИрдВрдХреЛ рдЯрд╛рдЙрдХреЛрдорд╛ рдЙрдареНрдЫрдиреНред
рд╕реНрдпреВрдбреЛ-рдХрдиреНрдлрд┐рдЧрд┐рдЩ рд╕реВрдЪреАрдмрджреНрдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╣рд░реВ (рдорд╛рд░реНрдЯрд┐рди рд░ рддрд╛рдмрд┐рдерд╛) рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд╕реАрдкрд╣рд░реВ (рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ: рдкрд╛рдЗрдерди, рдкрд░реНрд▓, рдкрд╛рд╕реНрдХрд▓ рд░ рд▓рд┐рд╕реНрдк, рдлреЛрд░рдЯреНрд░рд╛рди, рдПрд░реНрд▓рд╛рдВрдЧ, рдХреНрд░рдорд╢рдГ)ред
рдХрд╛рдЧрдЬрдХреЛ рдЯреБрдХреНрд░рд╛рдорд╛ рдЫрджреНрдо рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХреЛрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рдпрд╕рд▓рд╛рдИ рдзреНрдпрд╛рдирдкреВрд░реНрд╡рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░, рдпрджрд┐ рд╕рдмреИ рдХреБрд░рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рд╡реИрдз YAML рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рдврд╛рдБрдЪрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
6. рдЯреНрдпрд╛рдмрд╣рд░реВ рдмрдирд╛рдо рд╕реНрдкреЗрд╕реЗрд╕ рджреБрд╡рд┐рдзрд╛
рджреБрд╡рд┐рдзрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреБ рдкрд░реНрдиреЗрдЫ
рдХреБрдиреИ рдкрдирд┐ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рда рд╕рдореНрдкрд╛рджрдХрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдкреЗрд╕рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕реНрд╡рдд: рд╕рд╣реА рдЯреНрдпрд╛рдмрд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдХреБрдЮреНрдЬреА рдЕрдиреБрдпрд╛рдпреАрд╣рд░реВрдХреЛ рд╡рд┐рджреНрд░реЛрд╣ рдЯреНрдпрд╛рдм рддрд┐рдореА рдбрд░рд╛рдЙрдиреБ рдкрд░реНрджреИрдиред
рдкреНрд░рддреНрдпреЗрдХ YAML рдШреГрдгрд╛ рдЧрд░реНрдиреЗрд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдерд╛рд╣рд╛ рдЫ, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдЯреНрдпрд╛рдмрд╣рд░реВ рд░ рд╕реНрдкреЗрд╕рд╣рд░реВ рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдиред рд░ рдЬрдм рдХреЗрд╣рд┐ рджреЗрдЦрд┐рдБрджреИрди, рдпреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЕрдиреНрддрд┐рдо рдЪреАрдЬ рд╣реЛ рдЬреБрди рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рд╕рдореНрдЭрдиреНрдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдХреНрд░рдордмрджреНрдз рдЧрд░реЗрдкрдЫрд┐, рдЬрд╛рдБрдЪ рдЧрд░реЗ рд░ рдЕрдиреНрдп рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╣рдЯрд╛рдПред рдЯреНрдпрд╛рдмреБрд▓реЗрд╢рди рдХрд░реНрдн рд╡рд╛ рд╕реНрдкреЗрд╕рдХреЛ рдмреНрд▓рдХ рдЦреЛрдЬреНрди рдмрд┐рддрд╛рдПрдХреЛ рд╕рдордпрдХреЛ рдПрдХ рдШрдгреНрдЯрд╛ рдорд╛рддреНрд░ рдЪрд┐рдЪреНрдпрд╛рдЙрдЫ рдХрд┐ рддрдкрд╛рдИрд▓реЗ рддреБрд░реБрдиреНрддреИ рдПрдХ рд╡рд╛ рдЕрд░реНрдХреЛрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдиреАрддрд┐ рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рдХреЛ рдЕрдиреБрдкрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдмрд▓рд┐рдд рдареЛрд╕ рдЬрд╛рдБрдЪ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛рд░реНрдлрдд рдПрдХ рд▓рд┐рдиреНрдЯрд░ рдорд╛рд░реНрдлрдд рдмрд▓ рдЧрд░реНрди рдПрдХ Git рд╣реБрдХ)ред
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 рдПрдЙрдЯрд╛ рдареВрд▓реЛ рдЪреАрдЬ рд╣реЛ рдЬреБрди рдзреЗрд░реИ рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдпрд╕рдХреЛ minimalism рд░ рд╕рд╛рджрдЧреАрдХреЛ рд▓рд╛рдЧрд┐ рдорди рдкрд░рд╛рдЙрдБрдЫрдиреН, рддрд░ рдпреЛ рддрдкрд╛рдИрдВрдХреЛ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░рдХреЛ рдПрдХ рдорд╛рддреНрд░ рдЙрдкрдХрд░рдгрдмрд╛рдЯ рдЯрд╛рдврд╛ рдЫред рддреНрдпрд╕реИрд▓реЗ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкрд╛рд░реНрд╕рд┐рдЩ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрд╣рд░реВ YAML рдХреЛ рд▓рд╛рдЧрд┐ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдЬрд┐рд▓реЛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдпрд╕ рдЕрд╕рдлрд▓рддрд╛рд▓рд╛рдИ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдкреАрдбрд╛рд░рд╣рд┐рдд рд░реВрдкрдорд╛ рдмрд╛рдБрдЪреНрдиреЗрдЫрдиреНред
рдпрджрд┐ рддрдкрд╛рдИрдВ YAML рдмрд┐рдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреА 10 рд╕реБрдЭрд╛рд╡рд╣рд░реВ рд▓рд┐рдиреБрд╣реЛрд╕реН рд░ YAML рд▓рд╛рдИ рдПрдХ рдкрдЯрдХ рд░ рд╕рдмреИрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреЛ рдорди рдирдкрд░рд╛рдЙрдиреЗрд▓рд╛рдИ рдЬрд┐рддреНрдиреБрд╣реЛрд╕реН!
рд╕реНрд░реЛрдд: www.habr.com