Pular para o conteúdo

Formatador e minificador de HTML

HTML Beautifier & Minifier

Formata ou minifica HTML, preservando os elementos em linha e, opcionalmente, juntando os espaços em branco.

Reindenta HTML para que uma página que te passaram fique legível, ou minifica quando os bytes importam. O tokenizador implementa os estados raw-text e RCDATA do WHATWG, que é o que impede um `</div>` dentro de uma string de script de ser lido como uma tag e arruinar tudo depois dele.

🔒 Roda inteiramente no seu navegadorhtmlformatminifyweb
Modo
Recuo
Aspas de atributo
Largura da linha

HTML de entrada

Solte um arquivo .html

Lido só nesta aba. Nada é enviado.

HTML formatado

Elementos

20

Nós de texto

13

Comentários

1

Profundidade máxima

5

Até onde ele vai

  • · Um tokenizador escrito à mão lê <script> e <style> como texto cru, e <textarea> e <title> como RCDATA, de modo que um </div> dentro de uma string não seja confundido com uma tag.
  • · Nada do que está dentro de <pre> ou <textarea> muda nem um caractere; <script> e <style> só são reindentados linha a linha. O código que está dentro deles não é reescrito.
  • · Os elementos vazios como <br>, <img> e os elementos cuja tag de fechamento pode ser omitida — <li>, <p>, <td> — são tratados como manda a especificação. Tags de fechamento que faltam não são inseridas para você.
  • · A minificação remove só comentários, espaços em branco e aspas desnecessárias. Não tira tags de fechamento opcionais nem reordena atributos.
  • · Tags que não casam e atributos duplicados são relatados com linha e coluna, e o documento continua sendo lido até onde der — que é o que um navegador faz.

O CSS de dentro pode ser limpo à parte com o Formatador e minificador de CSS, e os scripts com o Formatador e minificador de JavaScript.

Como usar

  1. Cole uma página ou um fragmento

    Um documento inteiro com doctype, ou um pedaço que você copiou de um template. Os dois funcionam; um fragmento simplesmente não tem um elemento `html` dentro do qual indentar.

  2. Defina o layout

    Largura da indentação, se os atributos são normalizados para aspas duplas, a largura de linha em que uma lista longa de atributos quebra, e se o conteúdo de `html`, `head` e `body` é indentado: muitas páginas escritas à mão deixam isso rente à margem.

  3. Leia a lista de problemas

    Tags desencontradas e atributos duplicados são listados com linha e coluna. O documento ainda é formatado — o navegador também o renderizaria —, mas cada item é algo que vale corrigir.

  4. Ou minifique para a rede

    Saem os comentários, o espaço em branco e as aspas de atributo desnecessárias. Comentários condicionais e comentários `<!--!` são mantidos, e os números antes/depois mostram o que se ganhou.

Perguntas frequentes

Meu bloco `<pre>` está a salvo?

Sim. Nada dentro de `<pre>` ou `<textarea>` muda em um único caractere, em nenhum dos dois modos: ali o espaço em branco é conteúdo. `<script>` e `<style>` são reindentados linha a linha, mas o conteúdo deles nunca é reescrito.

Ele adiciona as tags de fechamento que eu deixei de fora?

Não. Ele as entende — `<li>`, `<p>` e `<td>` fecham implicitamente, e elementos vazios como `<br>` e `<img>` nunca tiveram tag de fechamento —, então a árvore é montada corretamente. Mas escrever tags que você não escreveu é uma edição, não uma formatação.

Ele formata um arquivo de template — Jinja, ERB, Handlebars?

Só na medida em que a sintaxe do template por acaso pareça texto. Blocos `{% if %}` não são entendidos como estrutura, então a indentação dentro deles vai estar errada onde uma tag abre em um ramo e fecha em outro. Formate a saída renderizada em vez disso.

Minificar muda a aparência da página?

O espaço em branco entre elementos inline é significativo em HTML, e colapsá-lo é a única opção daqui que pode mover um pixel: `<span>a</span> <span>b</span>` não é o mesmo que os dois spans encostados. Desligue Colapsar espaço em branco se o seu layout depende disso.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.