Saltar al contenido principal
Tooletto

Formateador de HTML

Formatea HTML desordenado o minificado con indentación adecuada, usando un analizador HTML real que también formatea correctamente el CSS y JavaScript incrustados. Los errores de sintaxis se informan con un número de línea.

  • Los archivos nunca salen de tu dispositivo
  • Gratis, sin registro
  • Sin marcas de agua
  • Funciona sin conexión una vez cargado
Loading tool…

Cómo formateador de html

  1. 1

    Pega tu HTML

    Minificado, mal indentado o escrito a mano — todo funciona.

  2. 2

    Elige la indentación

    2 espacios, 4 espacios o tabulaciones.

  3. 3

    Copia el resultado

    O descárgalo como un archivo .html.

Por qué HTML es más estricto con los espacios en blanco de lo que parece

La mayoría del HTML tolera que un formateador reorganice sus espacios en blanco libremente — indentación adicional entre elementos de bloque como `<div>` y `<p>` no tiene ningún efecto visible, porque los navegadores colapsan las secuencias de espacios en blanco entre esos elementos al renderizar. Tres casos específicos rompen esa suposición por completo: el contenido dentro de `<pre>` renderiza cada espacio y salto de línea literalmente, exactamente como está escrito; `<textarea>` trata su contenido de la misma forma ya que está pensado para reproducir texto exacto editable por el usuario; y cualquier elemento que lleve `white-space: pre` en CSS hereda el mismo tratamiento literal. Un formateador que reorganiza los espacios en blanco dentro de cualquiera de esos bloques cambia lo que la página realmente muestra, no solo cómo se ve el código fuente — por eso este formateador los deja completamente intactos en lugar de aplicar sus reglas habituales de indentación.

Los elementos en línea situados directamente junto a texto son un caso más sutil: un espacio entre dos elementos en línea a veces es visualmente significativo — el espacio entre dos palabras que abarcan etiquetas `<span>` separadas, por ejemplo — así que el formateador es deliberadamente conservador con el contenido en línea, prefiriendo dejar el espacio en blanco ambiguo tal cual en lugar de arriesgarse a colapsar un espacio que estaba haciendo un trabajo visual real.

Formatear una página entera en un solo paso, no solo las etiquetas

Una página ensamblada como un solo archivo HTML comúnmente incrusta su propio CSS dentro de un bloque `<style>` y su propio JavaScript dentro de un bloque `<script>`, y un formateador que solo entiende etiquetas HTML dejaría ese código incrustado como un bloque sin formatear o, peor, lo estropearía tratando las llaves y puntos y coma como sintaxis HTML. Entregar el contenido de esos bloques a un analizador CSS real y un analizador JavaScript real respectivamente significa que todo el archivo — marcado, estilos y comportamiento juntos — vuelve formateado de forma consistente, en lugar de solo la estructura HTML externa.

Por qué los navegadores aceptan HTML roto y un formateador no puede

Los navegadores están construidos con un modelo de recuperación de errores diseñado específicamente para renderizar algo razonable incluso a partir de marcado gravemente malformado — una etiqueta sin cerrar, una comilla faltante, elementos anidados en un orden inválido — porque la web tiene décadas de HTML imperfecto en producción que todavía necesita mostrarse. Un formateador no puede adoptar esa misma indulgencia: para reformatear un documento tiene que construir una comprensión estructural precisa de qué está anidado dentro de qué, y un documento con etiquetas genuinamente desbalanceadas no tiene una única estructura correcta que recuperar. Por eso una página que se muestra completamente normal en un navegador puede seguir siendo rechazada por este formateador — el navegador reparó silenciosamente la ambigüedad a su manera, mientras una herramienta que intenta reformatear correctamente tiene que señalar la ambigüedad en lugar de adivinar.

La sintaxis de plantillas es una falsa alarma común

Un archivo que falla al formatear muy a menudo no es HTML roto en absoluto, sino una plantilla — Handlebars, Jinja, Blade, EJS o similar — que mezcla directivas de plantilla con marcado, produciendo un documento que no es HTML independiente válido por sí mismo y que nunca necesita serlo. La plantilla solo se convierte en HTML real y bien formado después de que su motor de plantillas se ejecuta y sustituye los datos reales. Formatear la salida renderizada, capturada después de que el motor de plantillas la procesa — desde el "Ver código fuente" de un navegador, por ejemplo — evita esto por completo, ya que esa salida es HTML real sin ninguna sintaxis de plantilla restante.

Preguntas frecuentes

¿Formatea el CSS y JavaScript dentro de la página?

Sí. El contenido dentro de `<style>` y `<script>` se entrega a los analizadores de CSS y JavaScript, así que una página completa de un solo archivo se formatea correctamente en lugar de dejar esos bloques sin tocar.

¿El formateo cambiará cómo se renderiza mi página?

Casi nunca, pero no del todo nunca: HTML trata los espacios en blanco como significativos dentro de `<pre>`, `<textarea>` y elementos con `white-space: pre`. Esos se dejan exactamente como están. Los elementos en línea pueden desplazarse un espacio en casos extremos, por lo que el formateador es conservador con ellos.

¿Por qué rechaza mi HTML?

Normalmente etiquetas genuinamente desbalanceadas, o sintaxis de plantillas como Handlebars, Jinja o Blade que no es HTML válido. Los navegadores reparan silenciosamente el marcado roto; un formateador tiene que entender la estructura, así que no puede.

¿Se sube mi marcado a algún sitio?

No. El analizador funciona en tu navegador, así que las páginas no publicadas y el trabajo de clientes se quedan en tu máquina.

Tareas habituales de formateador de html