YAML и конфигурация
Комментарии в YAML: синтаксис, правила оформления и экранирование
В YAML и YML комментарии пишутся одинаково: поставьте # в начале строки или отделите его пробелом от значения. Комментарий продолжается до конца строки.
Опубликовано · Обновлено
Разбор YAML с комментариями
Четыре значения символа # в одном примере
Пояснения показывают границы синтаксиса парсера; цвет служит лишь визуальной подсказкой.
# полнострочный комментарий
service:
port: 8080 # инлайн-комментарий
tag: "#release"
message: |
# это содержимое скаляра- Полнострочный комментарийПарсер полностью игнорирует всю строку.
- Инлайн-комментарий# отделён от значения пробелом; текст после # игнорируется.
- Литерал в кавычках#release остается частью строки данных.
- Содержимое блочного скаляраСимвол # с отступом принадлежит значению message.
Распарсенные данные
Что становится частью значения?
Из этих четырех случаев символ # в кавычках и внутри блочного скаляра является данными. Полнострочный и инлайн # являются комментариями.
Как закомментировать несколько строк в YAML
Добавьте # в начало каждой строки. Отдельного блочного комментария вроде /* ... */ в YAML нет.
# Временно отключённый сервис
# service:
# port: 8080
# debug: trueБлоки | и > создают многострочные значения: парсер сохраняет их как данные. Они не заменяют комментарии.
Нужен ли пробел перед #?
После обычного значения — да. Без разделяющего пробела решётка внутри такого слова остаётся частью строки.
label: abc#def # значение: abc#def
name: abc # def — комментарий; значение: abc
color: "#ff8800" # значение начинается с решёткиЭти правила одинаковы для файлов .yaml и .yml. Основа правила — спецификация YAML, раздел Comments.
Частая ошибка
Оберните в кавычки значение, начинающееся с #
tag: #releasetag: "#release"Редактирование YAML с комментариями
Проверьте полнострочные и встроенные комментарии
Комментарии поясняют настройку, не становясь частью её значения.
# Production settings
port: 8080 # Public HTTP port
label: "build #42"
message: |
# This line is scalar contentОжидаемый результат: Корректный YAML; символы # в кавычках и блочном значении остаются данными.
Проверьте конфигурацию
Форматирование YAML с комментариями
Проверьте синтаксис ваших YAML файлов в онлайн-форматтере с сохранением комментариев.