O que esta ferramenta faz
HTML legível vira o menor HTML que renderiza igual.
<div>
<p> Olá </p>
</div>
<div><p> Olá </p></div>
As sequências de espaços viram um espaço, os espaços entre elementos de bloco somem, e os comentários somem — menos os condicionais, que são instruções a um navegador antigo, não recados a um leitor.
O espaço entre dois elementos em linha é conteúdo
<span>a</span> <span>b</span>
<span>a</span> <span>b</span>
Ali não há o que tirar: esse espaço é renderizado, e apagá-lo transforma “a b” em “ab”. Ele era apagado, o que deixava a página diferente em vez de menor — um defeito real, encontrado ao escrever esta página e corrigido. Em volta de um elemento de bloco, o mesmo espaço não renderiza nada, então sai:
<div>a</div> <div>b</div>
<div>a</div><div>b</div>
O valor de um atributo não é diagramação
<input value="a b">
<input value="a b">
Os dois espaços ficam. Eles eram achatados num só porque a passada sobre os espaços atravessava os atributos — e o valor que um formulário envia, o texto de um title, o conteúdo de um alt são dados, não indentação. Os valores entre aspas são postos de lado antes do achatamento e recolocados intactos.
Onde ela nunca entra
<pre>e<textarea>. Exibidos ou enviados exatamente como escritos.<script>e<style>. O conteúdo deles é JavaScript e CSS; os minificadores deles são ferramentas à parte neste site, e rodá-los é decisão sua, não efeito colateral desta.- Os comentários condicionais.
<!--[if IE]>…<![endif]-->é lido por um navegador, então fica.
Um limite que vale conhecer: uma região protegida acaba na tag de fechamento dela, achada por padrão. Um </script> literal dentro de uma string JavaScript, portanto, a termina cedo demais. Tratar esse caso direito exige um analisador HTML completo, que é outra ferramenta, diferente de um minificador de espaços.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.