Formatador HTML

Formate ou minifique código HTML, mantendo o conteúdo das tags script, style e textarea intocado — instantaneamente, no seu navegador.

Esta página foi traduzida do inglês com a ajuda de IA e conferida com o original. Ler a versão em inglês

  • Grátis — Sem necessidade de cadastro
  • Instantâneo — Os resultados são atualizados enquanto você digita
  • Privado — Processado no seu navegador

HTML minificado que chega como uma única linha de 40.000 caracteres é ilegível, e HTML indentado à mão e editado seis vezes não fica muito atrás. A ferramenta acima funciona nas duas direções: reindenta o markup para você conseguir ler ou o enxuga ao máximo para você conseguir publicar.

Como funciona

Cole o seu markup, escolha formatar ou minificar e defina uma indentação de 2 ou 4 espaços. Tudo roda no navegador — nada é enviado para servidor algum, o que faz diferença quando a página que você está depurando contém tokens de sessão ou dados de clientes.

Formatar divide a entrada em tokens e a reescreve com um nó por linha, aumentando a indentação depois de uma tag de abertura e diminuindo antes de uma de fechamento. Três detalhes tornam a saída correta, e não apenas arrumada:

  • Elementos void — <br>, <img>, <input>, <meta>, <link> e os demais elementos void do HTML5 — nunca abrem um nível, então o conteúdo seguinte não fica indentado por engano embaixo deles.
  • Elementos de texto bruto — <script>, <style> e <textarea> — têm o conteúdo percorrido até a tag de fechamento literal, exatamente como especifica o modelo de conteúdo do HTML5. Assim, um < dentro de uma string JavaScript ou de um seletor CSS não é confundido com o início de uma tag.
  • Comentários e o doctype passam sem nenhuma alteração.

Minificar condensa sequências de espaços em branco e junta tudo em uma única linha. Espaço em branco que contém uma quebra de linha é tratado como formatação e descartado; um simples espaço inline — aquele entre dois elementos <span> adjacentes na mesma linha — é mantido como um único espaço, porque removê-lo grudaria visualmente as duas palavras.

O que ela deliberadamente não faz

Isto é um formatador, não um validador nem um sanitizador. Ele reindenta sem reclamar um markup com uma <div> não fechada, e a saída vai denunciar o aninhamento errado com uma indentação que nunca volta para a margem esquerda — muitas vezes é o jeito mais rápido de encontrar a tag não fechada, mas não é uma mensagem de erro. Para verificar a conformidade, passe o markup pelo validador do W3C.

Ele também não minifica o conteúdo de <script> e <style>. Esse conteúdo é preservado literalmente, porque comprimir JavaScript com segurança exige fazer o parse do JavaScript, e uma regex que tente fazer isso mesmo assim vai acabar quebrando em algum template literal. Para isso, use um bundler de verdade.

A ordem dos atributos, o estilo de aspas e o uso de maiúsculas e minúsculas ficam exatamente como você escreveu. A ferramenta muda os espaços em branco e nada mais, então um arquivo formatado e a sua versão minificada sempre representam o mesmo documento.

Quando usar cada modo

Formatar é para leitura: inspecionar o código-fonte de uma página, revisar o diff de um template ou descobrir por que um fragmento renderizado no servidor está aninhado de um jeito diferente do que o template sugere. A indentação deixa visíveis erros de estrutura que um paredão de texto esconde.

Minificar é para transporte, e o ganho é menor do que costumava ser. Em HTTP com gzip ou Brotli, remover espaços em branco do HTML costuma economizar só alguns por cento, porque a compressão já lida bem com espaços repetidos. Ainda assim, ajuda em conteúdo que precisa caber em um orçamento fixo — um template de e-mail, um bloco de CSS crítico inline, um atributo data contendo um fragmento.

Não minifique o que uma etapa de build já vai minificar por você, e nunca faça commit de HTML minificado como código-fonte; a versão legível é a que pessoas precisam manter.

Leituras e ferramentas relacionadas

Se você está formatando markup para entendê-lo, vale a pena conhecer as regras de estrutura diretamente: o essencial do HTML5 cobre as categorias de elementos, quais elementos podem conter quais e por que as distinções entre elementos void e de texto bruto citadas acima existem. Quando o markup é gerado por uma camada de view em vez de escrito à mão, Spring MVC mostra onde o template entra no fluxo da requisição.

Para a operação equivalente sobre dados em vez de markup, use o formatador de JSON ou o formatador de YAML.

Perguntas frequentes

Isso valida meu HTML?
Não — é um formatador leve, não um validador nem um analisador HTML5 completo. Ele reindenta ou minifica marcações típicas e razoavelmente bem formadas, sem fechar automaticamente tags que ficaram abertas.
Ele reformata meu JavaScript ou CSS?
Não. O conteúdo das tags script, style e textarea é mantido exatamente como está escrito — apenas a marcação ao redor é reformatada.
Minha marcação é enviada a algum lugar?
Não. A formatação acontece totalmente no seu navegador.