ToolDeck

Formatador HTML

Formate e embeleze HTML com indentação correta

Experimente um exemplo

Entrada HTML

HTML Formatado

Roda localmente · Seguro para colar segredos
O HTML formatado aparecerá aqui…

O que é formatação HTML?

Um formatador HTML é uma ferramenta que realiza a formatação de HTML (também chamada de embelezamento ou pretty-printing): adiciona indentação consistente, quebras de linha e espaçamento à marcação HTML para que sua estrutura de aninhamento fique visível. Os navegadores ignoram espaços em branco ao renderizar HTML, portanto um documento escrito em uma única linha produz o mesmo resultado que um com indentação cuidadosa. A diferença é inteiramente para os humanos: HTML formatado é mais fácil de ler, depurar e manter.

A especificação HTML (mantida pelo WHATWG como o HTML Living Standard) define mais de 110 elementos, cada um com seu próprio modelo de conteúdo. Elementos de bloco como <div>, <section> e <article> geralmente começam em uma nova linha e indentam seus filhos. Elementos vazios como <br>, <img> e <input> não têm tag de fechamento nem filhos para indentar. Um bom formatador entende essas distinções e aplica regras de indentação adequadamente, em vez de simplesmente adicionar espaços em branco após cada tag.

A formatação é mais importante durante o desenvolvimento. HTML minificado ou gerado por máquina, saída de plataformas CMS e marcação copiada das DevTools do navegador frequentemente chegam como uma única linha densa. Sem indentação adequada, encontrar uma tag de fechamento ausente ou rastrear uma estrutura profundamente aninhada demora muito mais. Um formatador HTML transforma essa parede de texto em uma árvore devidamente indentada e legível em um único passo.

Por que usar este Formatador HTML?

Cole qualquer HTML e obtenha saída devidamente indentada instantaneamente. Sem plugins para instalar, sem arquivos de configuração para escrever, sem contas para criar.

Formatação Instantânea
A saída é atualizada conforme você digita. Cole HTML minificado de qualquer fonte e veja o resultado indentado sem aguardar uma etapa de build ou comando de terminal.
🔒
Processamento com Privacidade
Toda a formatação é executada no seu navegador usando JavaScript. Seu HTML nunca sai do seu dispositivo, então é seguro colar marcação contendo chaves de API, tokens ou URLs internas.
🎯
Indentação Configurável
Alterne entre indentação de 2 e 4 espaços com um clique. O formatador aplica sua escolha de forma consistente em todos os níveis de aninhamento.
📋
Cópia com Um Clique
Copie a saída formatada para a área de transferência com um único botão. Cole diretamente no seu editor, revisão de PR ou documentação.

Casos de uso do Formatador HTML

Desenvolvimento Frontend
Formate templates HTML antes de fazer commit no controle de versão. Indentação consistente reduz o ruído de diff em pull requests e torna a revisão de código mais rápida.
Depuração de Templates Backend
HTML renderizado no servidor por frameworks como Django, Rails ou PHP frequentemente produz marcação sem indentação. Cole a saída renderizada aqui para verificar o aninhamento e identificar tags não fechadas.
DevOps e Pipelines de CI
Valide que as ferramentas de build produzem HTML bem estruturado. Formate a saída de geradores de sites estáticos ou construtores de e-mail HTML antes da inspeção visual.
QA e Testes
Compare snapshots formatados da saída HTML entre execuções de teste. A indentação adequada torna as diferenças estruturais óbvias ao comparar duas versões de uma página.
Engenharia de Dados
Pipelines de web scraping produzem HTML bruto que precisa de inspeção. Formate as páginas extraídas para entender sua estrutura DOM antes de escrever seletores de extração.
Aprendendo HTML
Estudantes podem colar o código-fonte de qualquer site e ver como os elementos se aninham uns dentro dos outros. A visualização em árvore formatada torna claras as relações pai-filho entre as tags.

Regras de Indentação HTML

Como um formatador HTML trata cada tipo de elemento depende do seu modelo de conteúdo. A tabela abaixo mostra elementos comuns e como são indentados com configurações de 2 e 4 espaços. Ambos produzem renderização idêntica no navegador; a diferença é a legibilidade.

TagTipo de ElementoIndentação 2 EspaçosIndentação 4 Espaços
<div>Block elementNew line, indent childrenNew line, indent children
<span>Inline elementNew line, indent childrenInline with parent text
<br>Void elementNew line, same levelNew line, same level
<img>Void elementNew line, same levelNew line, same level
<!-- -->CommentNew line, same levelNew line, same level
<!DOCTYPE>Document typeFirst line, no indentFirst line, no indent
<script>Script blockNew line, preserve innerNew line, preserve inner
<pre>PreformattedNew line, preserve innerNew line, preserve inner

Formatador vs. Minificador vs. Linter

Essas três ferramentas operam em HTML mas servem a propósitos diferentes. Formatação e minificação são transformações opostas; linting verifica erros sem alterar os espaços em branco.

Formatador (Esta Ferramenta)
Adiciona indentação e quebras de linha para tornar o HTML legível. Não altera a estrutura DOM nem remove nenhum conteúdo. A saída renderiza de forma idêntica à entrada em um navegador.
Minificador
Remove espaços em branco, comentários e tags de fechamento opcionais para reduzir o tamanho do arquivo. O oposto da formatação. Use-o para builds de produção, não para leitura ou edição.
Linter (HTMLHint / W3C)
Verifica HTML em busca de erros como atributos alt ausentes, IDs duplicados ou tags obsoletas. Relata problemas mas não altera indentação ou formatação.

Exemplos de Código

Como formatar HTML programaticamente em linguagens e ferramentas populares:

JavaScript (js-beautify)
import { html as beautify } from 'js-beautify'

const ugly = '<div><p>Hello</p><ul><li>One</li><li>Two</li></ul></div>'

const formatted = beautify(ugly, {
  indent_size: 2,
  indent_char: ' ',
  wrap_line_length: 80,
  preserve_newlines: false,
})
// → <div>
// →   <p>Hello</p>
// →   <ul>
// →     <li>One</li>
// →     <li>Two</li>
// →   </ul>
// → </div>
Python (BeautifulSoup)
from bs4 import BeautifulSoup

ugly = '<div><p>Hello</p><ul><li>One</li><li>Two</li></ul></div>'

soup = BeautifulSoup(ugly, 'html.parser')
print(soup.prettify(formatter='minimal'))
# → <div>
# →  <p>
# →   Hello
# →  </p>
# →  <ul>
# →   <li>One</li>
# →   <li>Two</li>
# →  </ul>
# → </div>
Go (goquery + x/net/html)
package main

import (
    "bytes"
    "fmt"
    "golang.org/x/net/html"
    "strings"
)

func main() {
    ugly := "<div><p>Hello</p></div>"
    doc, _ := html.Parse(strings.NewReader(ugly))

    var buf bytes.Buffer
    html.Render(&buf, doc)
    fmt.Println(buf.String())
    // renders normalized HTML — pair with indent logic for pretty output
}
CLI (Prettier)
# Format a single file in place
npx prettier --write index.html

# Format and print to stdout (pipe-friendly)
npx prettier --parser html index.html

# Format with 4-space indentation
npx prettier --tab-width 4 --parser html index.html

# Format HTML from stdin
echo '<div><p>Hello</p></div>' | npx prettier --parser html

Perguntas Frequentes

Qual é a diferença entre formatação e validação de HTML?
A formatação adiciona indentação e quebras de linha para que a marcação seja legível. A validação verifica se a marcação está em conformidade com a especificação HTML, relatando erros como atributos obrigatórios ausentes ou elementos aninhados incorretamente. Um formatador não corrige erros; um validador não altera espaços em branco.
Formatar HTML muda como a página é renderizada?
Na maioria dos casos, não. Os navegadores recolhem sequências de espaços em branco em um único espaço ao renderizar. As exceções são elementos com white-space: pre ou regras CSS similares, e os elementos <pre> e <textarea>, onde os espaços em branco são significativos. Um formatador bem construído preserva o conteúdo desses elementos exatamente como estão.
Quantos espaços devo usar para indentação HTML?
Dois espaços e quatro espaços são ambos comuns. O Guia de Estilo HTML/CSS do Google recomenda 2 espaços. O formatador Prettier usa 2 espaços por padrão. Quatro espaços correspondem à convenção PEP 8 do Python e são preferidos por algumas equipes para consistência entre linguagens. Escolha um e aplique-o com um formatador ou configuração de editor.
Posso formatar HTML que contém JavaScript ou CSS incorporado?
Esta ferramenta formata a estrutura HTML (tags e atributos). Blocos inline de <script> e <style> são preservados como estão. Para formatar JavaScript e CSS incorporados, use um formatador dedicado como Prettier, que pode analisar e formatar as três linguagens em uma única execução.
Tabs vs. espaços ainda é um debate para HTML?
A maioria dos guias de estilo e formatadores HTML usa espaços por padrão. A Pesquisa de Desenvolvedores Stack Overflow de 2023 mostra que espaços são usados por cerca de 55% dos respondentes para desenvolvimento web. Tabs têm a vantagem de acessibilidade de permitir que cada desenvolvedor defina sua largura visual preferida. Ambos funcionam; a consistência dentro de um projeto importa mais do que a escolha em si.
Por que meu HTML parece diferente após a formatação?
O formatador adiciona caracteres de espaço em branco (espaços e quebras de linha) que não estavam na marcação original. Isso muda a aparência do código-fonte, mas não a saída renderizada. Se você vir uma diferença visual no navegador, provavelmente é causada por elementos inline onde o espaço em branco adicionado cria um caractere de espaço extra entre as tags, o que pode ser resolvido com CSS (font-size: 0 no pai, ou layout com flexbox).
Como faço para impor formatação HTML consistente em uma equipe?
Use um formatador automatizado no seu pipeline de CI. Prettier suporta HTML e pode ser executado como um hook de pré-commit via Husky ou lint-staged. Adicione um arquivo de configuração .prettierrc ao seu repositório especificando tabWidth, printWidth e htmlWhitespaceSensitivity. Cada commit seguirá as mesmas regras de formatação independentemente das configurações de editor de cada desenvolvedor.
Qual é a diferença entre um formatador HTML e um embelezador HTML?
São a mesma operação. 'Formatador' e 'embelezador' referem-se a adicionar indentação e quebras de linha à marcação HTML. Algumas ferramentas usam 'beautify' (js-beautify), outras usam 'format' (Prettier). A saída é idêntica: HTML devidamente indentado e legível. 'Pretty-print' é outro sinônimo comumente usado em documentação e consultas de pesquisa.