Форматировщик и валидатор YAML

Форматируйте, валидируйте и украшайте YAML онлайн. Мгновенно выделяет синтаксические ошибки с номерами строк. Бесплатно и полностью работает в браузере.

Как использовать

  1. Вставьте ваш YAML в поле ввода
  2. Нажмите «Форматировать и проверить», чтобы украсить и проверить синтаксис
  3. Если YAML некорректен, сообщение об ошибке покажет точную строку и проблему
  4. Настройте селектор отступов для управления отступами в выводе
  5. Нажмите «Копировать», чтобы скопировать отформатированный результат, или «Очистить» для сброса

Часто задаваемые вопросы

  • Что такое валидация YAML?

    Валидация YAML проверяет, соответствует ли документ правильному синтаксису YAML: правильные отступы, отсутствие дублирующихся ключей, допустимые типы данных и корректное использование специальных символов.

  • Меняет ли форматирование мои данные?

    Нет. Форматирование изменяет только пробелы и отступы. Структура данных и значения остаются абсолютно теми же.

  • Какие ошибки синтаксиса YAML встречаются чаще всего?

    Распространённые ошибки: несогласованные отступы (смешение табуляции и пробелов), отсутствие двоеточий после ключей, строки без кавычек, содержащие специальные символы, например : или #, а также дублирующиеся ключи.

  • Отправляется ли мой YAML на сервер?

    Нет. Всё форматирование и валидация происходят полностью в браузере с использованием библиотеки js-yaml. Ваши данные никогда не покидают ваше устройство.

  • В чём разница между YAML и JSON?

    YAML является расширенным набором JSON, поддерживает комментарии, многострочные строки и менее многословен. JSON использует фигурные скобки и кавычки, тогда как YAML использует отступы. YAML обычно применяется для файлов конфигурации, JSON — для API.

Что такое YAML и где он применяется

YAML (YAML Ain't Markup Language — рекурсивный акроним) — это человекочитаемый формат сериализации данных, созданный в 2001 году. В отличие от JSON и XML, YAML делает упор на читаемость: минимум специальных символов, структура выражается через отступы, а не через скобки.

Сегодня YAML стал стандартом для файлов конфигурации в таких технологиях как:

  • Kubernetes: манифесты Pod, Deployment, Service, ConfigMap
  • Docker Compose: docker-compose.yml
  • GitHub Actions / GitLab CI: определения пайплайнов
  • Ansible: плейбуки и роли
  • Helm: чарты и values-файлы
  • OpenAPI / Swagger: описание API

Синтаксис YAML: основные конструкции

Скалярные значения

имя: Иван
возраст: 30
активен: true
рейтинг: 4.5
пусто: null

Списки (последовательности)

языки:
  - Python
  - Go
  - TypeScript

Вложенные объекты (отображения)

база_данных:
  хост: localhost
  порт: 5432
  имя: production

Многострочные строки

YAML предлагает два способа записи многострочного текста:

# Буквальный блок (literal block) — сохраняет переносы строк
описание: |
  Первая строка.
  Вторая строка.

# Свёрнутый блок (folded block) — заменяет переносы пробелами
текст: >
  Длинная строка,
  которая будет свёрнута в одну.

Распространённые синтаксические ошибки

Смешивание табуляции и пробелов

YAML запрещает использование табуляции для отступов. Это самая частая причина ошибок парсинга. Всегда используйте пробелы (обычно 2 или 4).

Специальные символы без кавычек

Следующие символы имеют специальное значение и требуют кавычек в строковых значениях:

# Неверно:
сообщение: Привет: мир       # двоеточие без пробела
теги: [да, нет, true]        # true парсится как булево
путь: C:\Users\name          # обратный слеш
# Верно:
сообщение: "Привет: мир"
строка: "true"
путь: "C:\\Users\\name"

Дублирующиеся ключи

YAML-спецификация не запрещает дублирующиеся ключи, но поведение при их наличии зависит от парсера. Большинство парсеров берут последнее значение, некоторые выдают ошибку. Форматировщик-валидатор предупредит о дублировании.

Якоря и псевдонимы: мощная функция YAML

YAML поддерживает механизм повторного использования данных:

по_умолчанию: &defaults
  тайм_аут: 30
  повторы: 3

сервис_а:
  <<: *defaults   # merge key — вставляет все поля
  хост: service-a.example.com

сервис_б:
  <<: *defaults
  хост: service-b.example.com
  тайм_аут: 60   # переопределение

Эта функция широко используется в Helm-чартах и Ansible для избежания повторений.

Зачем нужно форматирование и валидация

Файлы конфигурации YAML нередко редактируются вручную, и ошибка в одном символе может привести к незапуску сервиса или некорректному поведению деплоя. Форматировщик:

  • Стандартизирует отступы и устраняет смешивание табуляции и пробелов
  • Мгновенно показывает строку и характер синтаксической ошибки
  • Помогает привести файлы разных разработчиков к единому стилю