YAML Форматтер

Форматируйте, проверяйте и конвертируйте YAML-документы с подсветкой синтаксиса и обнаружением ошибок

Работает локально

Ввод YAML

Результат форматирования

Инспектор

Вставьте корректный YAML — структура, дерево и пути ключей появятся здесь автоматически

Расширенные настройки

Сравнить с другим YAML

Отправьте этот документ в Data Diff и вставьте вторую версию, чтобы увидеть, что изменилось.

Валидация с точной позицией ошибки

Валидация выполняется при каждом нажатии клавиши с помощью парсера js-yaml 1.2. Для корректных документов в реальном времени подсчитывается количество документов, отображений (mapping), последовательностей, ключей и глубина вложенности. Для некорректных указываются точные строка и столбец, вероятная причина и подсветка проблемной позиции — а не просто "syntax error".

Частые ошибки YAML, которые точно находит этот инструмент

Эти ошибки — причина большинства невалидных YAML-документов. Каждая из них обнаруживается с указанием позиции и вероятной причины:

Неправильные отступы

Дочерняя строка с отступом меньше родительской или строки одного уровня, которые не выровнены. Обычно парсер сообщает "bad indentation of a mapping entry" с точным номером строки.

Символ TAB

YAML запрещает табуляцию в отступах. Парсер сообщает "found a tab character that violates indentation" и подсвечивает проблемную строку.

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

Один и тот же ключ дважды в одном отображении. js-yaml сообщает "duplicated mapping key" с номером строки второго вхождения.

Пропущенное двоеточие или пробел

Ключ без значения ("key key2") или двоеточие, прижатое к ключу ("key:value" — это обычная строка, а не пара ключ-значение). Парсер сообщает "could not find expected ':'".

До / После

Слева — сжатый манифест Kubernetes, справа — тот же документ, отформатированный с отступом в 2 пробела. Структура, дерево и пути обновляются на основе разобранного документа.

Before (flow style)
{apiVersion: apps/v1, kind: Deployment, metadata: {name: web-app}, spec: {replicas: 3, template: {metadata: {labels: {app: web}}}}}
After (block style)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: web

Краткая шпаргалка по YAML (YAML 1.2)

  • Отступы задают структуру: только пробелы — символы TAB никогда не допускаются для отступов.
  • После двоеточия должен идти пробел, чтобы оно было разделителем ключа: "key: value", а не "key:value".
  • Скаляры приводятся к типам по core-схеме: true/false (логические), целые числа, числа с плавающей точкой, null (~ / null / пустое значение). Обратите внимание: "yes"/"no" в 1.2 — обычные строки.
  • Несколько документов в одном файле разделяются строкой "---"; "..." завершает документ.
  • Якоря (&base) и ссылки (*base) избавляют от дублирования (DRY); ключи слияния ("<<: *base") наследуют отображения.

Что делать с этими данными дальше

Форматирование — только первый шаг. Продолжайте работу, не покидая браузер:

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

Ответы на распространенные вопросы о форматировании Yaml Formatter

Форматтер следует спецификации YAML 1.2, что обеспечивает совместимость с современными инструментами, такими как Kubernetes, Docker Compose, GitHub Actions и другими cloud-native платформами.

Да, функция двунаправленного преобразования позволяет конвертировать YAML в JSON и JSON в YAML с сохранением типов данных, вложенных структур и, где это применимо, комментариев.

Безусловно. Форматтер предназначен для обработки манифестов Kubernetes, файлов Docker Compose, конвейеров CI/CD и других YAML-файлов с несколькими документами с корректным разделением секций.

Валидатор проверяет единообразие отступов, корректное использование двоеточий и тире, парность кавычек в строках, ссылки на якоря и алиасы, а также выдаёт сообщения об ошибках с указанием строки для быстрой отладки.

Да, форматтер корректно обрабатывает якоря (&), алиасы (*) и ключи слияния (<<) YAML, сохраняя эти DRY-возможности при форматировании окружающей структуры.

YAML 1.2 — актуальная спецификация с yaml.org; именно её используют документы Kubernetes, docker-compose и GitHub Actions. В YAML 1.2 JSON стал допустимым подмножеством, а разбор логических значений стал строже; форматтер сохраняет явные кавычки там, где парсеры 1.1 (до сих пор распространённые в Python PyYAML) могли бы неверно истолковать значения вроде "no" или "0777".

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

Он её помечает: «голые» NO, no, ON, on, yes, n автоматически заключаются в кавычки при форматировании, поэтому парсеры YAML 1.1 не смогут преобразовать их в логические значения. Список кодов стран [NO, SE, DK] остаётся тремя строками. YAML 1.2 распознаёт как логические значения только true/false, но кавычки — единственный вывод, безопасный в обеих версиях.

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

Связанные инструменты