здесь могла быть реклама очередного ПФ сервиса
инструмент

Форматирование HTML кода онлайн

Вставьте минифицированный HTML (например, view-source любого сайта или один из отчётов Next.js/React) — слева, читаемый код с отступами появится справа. Атрибуты, регистр React-полей и содержимое script/style не трогаются, если явно не включить соответствующий режим.

0
Строк
0
Тегов
0
Глубина
0
Символов
0
Размер, КБ
0
Проблем
Исходный HTML
Результат

                            
как пользоваться

Как пользоваться форматированием HTML

  1. Вставьте HTML в левую панель — можно скопировать view-source страницы, дамп из React/Next.js, письмо-рассылку или загрузить .html-файл кнопкой «Загрузить файл» (или перетащить файл в панель редактора).
  2. Получите результат справа. Форматирование запускается автоматически; для документов больше ~300 КБ нажмите «Форматировать» вручную.
  3. Настройте параметры при необходимости. Размер отступа (2/4/Tab), перенос атрибутов длинных тегов, форматирование script/style, приведение тегов к нижнему регистру.
  4. Проверьте статистику. Панель сверху показывает число строк, тегов, глубину вложенности, размер в КБ и число «проблем» — незакрытых или бесхозных тегов.
  5. Скопируйте или скачайте результат. «Копировать HTML» — обычный текст, «String» — та же строка в виде JS-литерала с \n для вставки в код, «Скачать .html» — сохраняет результат файлом.
что умеет

Форматирование HTML без риска сломать вёрстку

Большинство онлайн-форматтеров HTML работают через DOMParser или innerHTML — а это значит, что браузер по пути приводит имена атрибутов к нижнему регистру, переставляет теги и нормализует кавычки. Для обычной верстки это незаметно, но для кода из React/Next.js (camelCase-атрибуты) или инлайн-SVG (регистрозависимые атрибуты вроде viewBox) — это тихая порча кода. Этот инструмент разбирает исходный текст посимвольно и меняет только пробелы между тегами.

Не трогает атрибуты
Кавычки, регистр (charSet, fetchPriority), пустые и булевы атрибуты копируются как в исходнике.
Безопасен для SVG
viewBox, clipPath, linearGradient не приводятся к нижнему регистру, даже если включена такая опция.
Понимает вложенность без DOM
Незакрытые <li>, <p>, <td> закрываются по правилам браузера — без лесенки отступов.
Script/style по желанию
По умолчанию содержимое не трогается; отдельный чекбокс включает отступы в JS/CSS и pretty-print JSON-LD.
Статистика документа
Строки, теги, максимальная глубина вложенности, размер в КБ и число проблемных мест — на одной панели.
Файлы и буфер обмена
Загрузка .html файла или drag-and-drop, копирование результата как HTML, JS-строки или скачивание файлом.
сложные случаи

Что инструмент не ломает

Наивное форматирование HTML регулярными выражениями почти всегда спотыкается на одних и тех же местах. Вот что этот инструмент обрабатывает корректно:

Ситуация Что происходит
> и < внутри значений атрибутов, например title="a > b" Атрибут не ломается, тег закрывается на правильном символе
Атрибуты без кавычек и в одинарных кавычках Копируются как есть, не приводятся к двойным кавычкам
React/JS-атрибуты: charSet, fetchPriority, imageSrcSet Регистр не меняется по умолчанию
SVG-атрибуты: viewBox, clipPath, linearGradient Не приводятся к нижнему регистру, даже если включена опция «нижний регистр»
</div> внутри строки JS в <script> Не считается закрывающим тегом — содержимое script остаётся текстом
<pre> и <textarea> Содержимое и все пробелы внутри не изменяются ни на символ
Комментарии, SSI-директивы, условные комментарии IE Копируются как есть, включая <!--#include virtual="..." -->
Незакрытые <li>, <p>, <td>, <option> Закрываются по тем же неявным правилам, что использует браузер
JSON-LD в <script type="application/ld+json"> По желанию (чекбокс) красиво форматируется через JSON.parse/stringify
Один документ на 30 000+ символов в одной строке Форматируется за доли секунды
для кого подойдёт

Кто пользуется форматированием HTML онлайн

  • SEO-специалисты — смотрят исходный код чужого сайта (view-source), проверяют вёрстку мета-тегов, структурированных данных, атрибутов картинок.
  • Разработчики — разбирают минифицированный вывод React/Next.js/Vue или чужой билд, ищут нужный блок в одной гигантской строке.
  • Верстальщики и контент-менеджеры — приводят в порядок HTML из email-рассылок, экспортов CMS, чужих шаблонов перед вставкой в редактор.
  • Технические писатели — проверяют структуру HTML-документации перед публикацией.
  • Студенты и преподаватели — разбирают чужую вёрстку построчно при изучении HTML.
сравнение

Форматирование HTML: сравнение способов

Способ Бесплатно Без регистрации Не портит React/SVG атрибуты Работает офлайн Статистика документа
Этот инструмент Да Да Да Да (кэш) Да
Онлайн-форматтеры на regex Да Да Нет Нет Нет
Chrome DevTools (pretty-print) Да Да Да Да Нет
Prettier в VS Code Да Да Частично Да Через расширения

Данные актуальны на момент публикации. Функциональность сторонних инструментов может меняться.

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

FAQ по форматированию HTML

Зачем форматировать HTML, если браузеру всё равно?
Браузеру действительно всё равно, но человеку — нет. Минифицированный HTML с view-source любого сайта или из React/Next.js — это одна строка на десятки тысяч символов. Форматирование добавляет отступы и переносы строк, ничего не меняя в самой разметке, чтобы код можно было читать, искать нужный блок и понимать вложенность.
Не сломает ли форматирование вёрстку?
Нет. Инструмент не использует DOMParser и не строит DOM — он посимвольно разбирает исходный текст и меняет только пробелы между тегами. Атрибуты, кавычки, регистр React-атрибутов (charSet, fetchPriority), содержимое script/style и SVG остаются такими, какими были в исходнике.
Работает с версткой из React, Next.js, Vue?
Да. Такие фреймворки генерируют HTML с camelCase-атрибутами (imageSrcSet, fetchPriority) и десятками подряд идущих тегов script. Инструмент не приводит регистр атрибутов к нижнему по умолчанию и не путает вложенные кавычки, поэтому такая разметка форматируется без потерь.
Что будет с содержимым <script> и <style>?
По умолчанию содержимое script и style копируется как есть — только сам тег получает отступ по уровню вложенности. Если включить чекбокс «Script/style», инструмент дополнительно расставит отступы в JS/CSS и красиво отформатирует JSON-LD внутри script type="application/ld+json".
А если в HTML есть ошибки — незакрытые теги?
Инструмент не пытается «починить» разметку, но и не ломается на ней. Незакрытые <li>, <p>, <td>, <option> закрываются по тем же неявным правилам, что использует браузер — без бесконечной лесенки отступов вправо. Лишний закрывающий тег без пары просто печатается на текущем уровне.
Мой код куда-то отправляется?
Нет. Разбор и форматирование происходят локально в браузере на JavaScript. Код не покидает вкладку — можно спокойно вставлять код с закрытых страниц и внутренних инструментов.