Qué hace esta herramienta
HTML legible se vuelve el HTML más pequeño que se renderiza igual.
<div>
<p> Hola </p>
</div>
<div><p> Hola </p></div>
Las series de espacios se vuelven un espacio, los espacios entre elementos de bloque se van, y los comentarios se van, salvo los condicionales, que son instrucciones a un navegador viejo antes que notas a un lector.
El espacio entre dos elementos en línea es contenido
<span>a</span> <span>b</span>
<span>a</span> <span>b</span>
Ahí no hay nada que quitar: ese espacio se renderiza, y borrarlo convierte «a b» en «ab». Se borraba, lo que hacía la página distinta en vez de más pequeña —un defecto real, encontrado al escribir esta página y corregido—. Alrededor de un elemento de bloque el mismo espacio no renderiza nada, así que se va:
<div>a</div> <div>b</div>
<div>a</div><div>b</div>
El valor de un atributo no es maquetación
<input value="a b">
<input value="a b">
Los dos espacios se quedan. Se aplastaban en uno porque la pasada sobre los espacios atravesaba los atributos, y el valor que envía un formulario, el texto de un title, el contenido de un alt son datos, no indentación. Los valores entrecomillados se apartan antes del aplastado y se reponen intactos.
Dónde no entra nunca
<pre>y<textarea>. Mostrados o enviados exactamente como están escritos.<script>y<style>. Su contenido es JavaScript y CSS; sus minificadores son herramientas aparte en este sitio, y lanzarlos es decisión tuya, no un efecto secundario de esta.- Los comentarios condicionales.
<!--[if IE]>…<![endif]-->lo lee un navegador, así que se queda.
Un límite que conviene conocer: una región protegida acaba en su etiqueta de cierre, localizada por patrón. Un </script> literal dentro de una cadena JavaScript la termina, pues, demasiado pronto. Tratar bien ese caso exige un analizador HTML completo, que es otra herramienta distinta de un minificador de espacios.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.