Форматер YAML

Форматирование выполняется в этом браузере. Ваш YAML никуда не отправляется.

Вставьте YAML объёмом не более 1 000 000 символов и не более 100 документов. Форматирование выполняется в этом браузере.

YAML снисходителен к синтаксису и беспощаден к отступам. Один лишний пробел может незаметно превратить ключ в элемент списка, а смешанные отступы делают ревью мучительным. Этот форматер разбирает ввод движком js-yaml (core-схема YAML 1.2) прямо в браузере, а затем выводит его заново с выбранными вами отступами, стилем коллекций, кавычками, порядком ключей и шириной строки, чтобы конфиги давали чистые диффы в системе контроля версий и оставались читаемыми для всей команды.

Как отформатировать YAML

  1. 1

    Вставьте YAML

    До 1 000 000 символов и до 100 документов в одном потоке. Ничего не загружается: разбор выполняется в вашем браузере.

  2. 2

    Выберите опции

    Ширина отступа, блочный или потоковый стиль, кавычки, сортировка ключей и ширина строки.

  3. 3

    Отформатируйте

    Инструмент собирает каждый документ заново с каноничными отступами и выбранным стилем.

  4. 4

    Скопируйте и закоммитьте

    На выходе структурно идентичный YAML, готовый вернуться в ваш конфиг.

До и после

Неаккуратный ввод:

server:
  port:   8080
  hosts: ["api.example.com",  "api2.example.com"]
  timeout:  30
  debug: true

Отформатировано (2 пробела, блочный стиль):

server:
  port: 8080
  hosts:
    - api.example.com
    - api2.example.com
  timeout: 30
  debug: true

Опции форматирования

Опция Значения По умолчанию
Ширина отступа 2, 4 2
Стиль коллекций Блочный, потоковый Блочный
Кавычки Минимальные, двойные, одинарные Минимальные
Сортировка ключей Исходный, по алфавиту Исходный
Ширина строки 80, 120, без ограничения 120

Правила кавычек

Минимальные кавычки обычно то, что нужно: строки остаются без кавычек, если только это не опасно. Форматер добавляет кавычки автоматически для:

  • Устаревших булевых значений в виде строк: yes, no, on, off, y, n. YAML 1.2 уже читает их как строки, но многие парсеры до сих пор следуют YAML 1.1, где no без кавычек превращается в false. Форматер всегда берёт их в кавычки на выводе, поэтому знаменитый «норвежский баг» (NO в списке стран, прочитанное как false) не укусит того, кто читает ваш файл.
  • Чисел в виде строк: '007', '3.14'. Без кавычек они были бы разобраны как целые или дробные числа.
  • Строк с символами вроде :, #, [, { или пробелом в начале, где голый вывод изменил бы структуру.

Чистки при каждом запуске

  • Пробелы в конце строк. Удаляются.
  • Смешанные или неровные отступы. Приводятся к выбранной ширине отступа.
  • Пустые строки внутри коллекций. Удаляются.
  • Табуляция в отступах. YAML её запрещает; парсер отклоняет ввод с понятной ошибкой, указывающей на строку, чтобы вы исправили её, а не выпустили файл, который другие парсеры не примут.

Комментарии, якоря и ключи слияния

Форматирование нормализует модель документа, и у этого есть ограничения, о которых стоит знать до коммита:

  • Комментарии удаляются. Парсер сводит документ к данным, поэтому комментарии # не переживают форматирование. Сохраните копию, если комментарии важны.
  • Якоря и алиасы разрешаются. Узлы, разделяемые через алиас, остаются общими, но выводятся заново со сгенерированными именами вроде &ref_0; исходные имена якорей не сохраняются.
  • Ключи слияния (<<:) разрешаются в обычные маппинги с уже подставленными значениями.

Потоки из нескольких документов

Потоки с несколькими документами поддерживаются: каждый документ форматируется независимо и снова соединяется разделителем ---, до 100 документов за запуск.

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

Структура и значения остаются идентичными: меняется только запись (отступы, кавычки, потоковый или блочный стиль, порядок ключей при включённой сортировке). Две вещи не сохраняются намеренно: комментарии удаляются, а имена якорей генерируются заново.

Когда голая строка была бы разобрана как что-то другое, кавычки необходимы для безопасности. Типичные случаи: ключи или значения из одних цифр, строки с : или #, а также устаревшие булевы значения вроде yes и no, которые парсеры YAML 1.1 прочитали бы как true/false.

Нет. Опция стиля применяется ко всему документу: блочный разворачивает каждую коллекцию на отдельные строки, потоковый записывает коллекции в одну строку. Отформатируйте дважды с разными опциями, если нужно сравнить.

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

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.