Un formateur HTML est un outil qui effectue le formatage HTML (également appelé embellissement ou pretty-printing) : il ajoute une indentation, des sauts de ligne et des espacements cohérents au code HTML afin de rendre visible sa structure d'imbrication. Les navigateurs ignorent les espaces lors du rendu HTML, si bien qu'un document écrit sur une seule ligne produit le même résultat qu'un document soigneusement indenté. La différence est entièrement pour les humains : du HTML formaté est plus facile à lire, à déboguer et à maintenir.
La spécification HTML (maintenue par le WHATWG sous le nom HTML Living Standard) définit plus de 110 éléments, chacun avec son propre modèle de contenu. Les éléments de type bloc comme <div>, <section> et <article> commencent généralement sur une nouvelle ligne et indentent leurs enfants. Les éléments vides comme <br>, <img> et <input> n'ont pas de balise fermante ni d'enfants à indenter. Un bon formateur comprend ces distinctions et applique les règles d'indentation en conséquence, plutôt que d'ajouter aveuglément des espaces après chaque balise.
Le formatage est surtout utile pendant le développement. Le HTML minifié ou généré automatiquement, les sorties de plateformes CMS et le code copié depuis les DevTools du navigateur arrivent souvent sous forme d'une seule ligne dense. Sans indentation correcte, trouver une balise fermante manquante ou suivre une structure profondément imbriquée prend nettement plus de temps. Un formateur HTML transforme ce mur de texte en une arborescence lisible et correctement indentée en une seule étape.
Pourquoi utiliser ce formateur HTML ?
Collez n'importe quel HTML et obtenez instantanément une sortie correctement indentée. Pas de plugin à installer, pas de fichier de configuration à écrire, pas de compte à créer.
⚡
Formatage instantané
La sortie se met à jour au fil de la saisie. Collez du HTML minifié de n'importe quelle source et voyez le résultat indenté sans attendre une étape de build ou une commande CLI.
🔒
Traitement respectueux de la confidentialité
Tout le formatage s'exécute dans votre navigateur via JavaScript. Votre HTML ne quitte jamais votre appareil, ce qui permet de coller en toute sécurité du code contenant des clés API, des tokens ou des URL internes.
🎯
Indentation configurable
Passez entre une indentation de 2 espaces et 4 espaces en un clic. Le formateur applique votre choix de manière cohérente à chaque niveau d'imbrication.
📋
Copie en un clic
Copiez la sortie formatée dans votre presse-papiers d'un seul bouton. Collez-la directement dans votre éditeur, votre revue de pull request ou votre documentation.
Cas d'utilisation du formateur HTML
Développement frontend
Formatez les templates HTML avant de les committer dans le contrôle de version. Une indentation cohérente réduit le bruit dans les diffs des pull requests et accélère la revue de code.
Débogage de templates backend
Le HTML rendu côté serveur par des frameworks comme Django, Rails ou PHP génère souvent du code non indenté. Collez la sortie rendue ici pour vérifier l'imbrication et repérer les balises non fermées.
DevOps et pipelines CI
Vérifiez que les outils de build produisent un HTML bien structuré. Formatez la sortie des générateurs de sites statiques ou des outils de création d'e-mails HTML avant l'inspection visuelle.
QA et tests
Comparez des instantanés formatés de la sortie HTML entre les runs de tests. Une indentation correcte rend les différences structurelles évidentes lors de la comparaison de deux versions d'une page.
Ingénierie des données
Les pipelines de web scraping produisent du HTML brut qui nécessite une inspection. Formatez les pages récupérées pour comprendre leur structure DOM avant d'écrire des sélecteurs d'extraction.
Apprentissage du HTML
Les étudiants peuvent coller le code source de n'importe quel site web et voir comment les éléments s'imbriquent les uns dans les autres. L'arborescence formatée rend claires les relations parent-enfant entre les balises.
Règles d'indentation HTML
La façon dont un formateur HTML traite chaque type d'élément dépend de son modèle de contenu. Le tableau ci-dessous montre les éléments courants et leur indentation avec les paramètres 2 espaces et 4 espaces. Les deux produisent un rendu identique dans le navigateur ; la différence est la lisibilité.
Balise
Type d'élément
Indentation 2 espaces
Indentation 4 espaces
<div>
Block element
New line, indent children
New line, indent children
<span>
Inline element
New line, indent children
Inline with parent text
<br>
Void element
New line, same level
New line, same level
<img>
Void element
New line, same level
New line, same level
<!-- -->
Comment
New line, same level
New line, same level
<!DOCTYPE>
Document type
First line, no indent
First line, no indent
<script>
Script block
New line, preserve inner
New line, preserve inner
<pre>
Preformatted
New line, preserve inner
New line, preserve inner
Formateur vs. Minifieur vs. Linter
Ces trois outils opèrent sur du HTML mais servent des objectifs différents. Le formatage et la minification sont des transformations opposées ; le linting vérifie les erreurs sans modifier les espaces.
Formateur (cet outil)
Ajoute indentation et sauts de ligne pour rendre le HTML lisible. Ne modifie pas la structure DOM ni ne supprime aucun contenu. La sortie s'affiche de manière identique à l'entrée dans un navigateur.
Minifieur
Supprime les espaces, les commentaires et les balises fermantes optionnelles pour réduire la taille du fichier. L'opposé du formatage. À utiliser pour les builds de production, pas pour la lecture ou l'édition.
Linter (HTMLHint / W3C)
Vérifie le HTML pour détecter des erreurs comme des attributs alt manquants, des ID en double ou des balises dépréciées. Signale les problèmes mais ne modifie pas l'indentation ni le formatage.
Exemples de code
Comment formater du HTML par programmation dans les langages et outils populaires :
package main
import (
"bytes"
"fmt"
"golang.org/x/net/html"
"strings"
)
func main() {
ugly := "<div><p>Hello</p></div>"
doc, _ := html.Parse(strings.NewReader(ugly))
var buf bytes.Buffer
html.Render(&buf, doc)
fmt.Println(buf.String())
// renders normalized HTML — pair with indent logic for pretty output
}
CLI (Prettier)
# Format a single file in place
npx prettier --write index.html
# Format and print to stdout (pipe-friendly)
npx prettier --parser html index.html
# Format with 4-space indentation
npx prettier --tab-width 4 --parser html index.html
# Format HTML from stdin
echo '<div><p>Hello</p></div>' | npx prettier --parser html
Questions fréquemment posées
Quelle est la différence entre le formatage HTML et la validation HTML ?
Le formatage ajoute indentation et sauts de ligne pour rendre le code lisible. La validation vérifie si le code est conforme à la spécification HTML, en signalant les erreurs comme les attributs obligatoires manquants ou les éléments incorrectement imbriqués. Un formateur ne corrige pas les erreurs ; un validateur ne modifie pas les espaces.
Le formatage HTML change-t-il le rendu de la page ?
Dans la plupart des cas, non. Les navigateurs regroupent les séquences d'espaces en un seul espace lors du rendu. Les exceptions sont les éléments avec white-space: pre ou des règles CSS similaires, ainsi que les éléments <pre> et <textarea>, où les espaces sont significatifs. Un formateur bien conçu préserve le contenu de ces éléments tel quel.
Combien d'espaces utiliser pour l'indentation HTML ?
Deux espaces et quatre espaces sont tous deux courants. Le guide de style HTML/CSS de Google recommande 2 espaces. Le formateur Prettier utilise 2 espaces par défaut. Quatre espaces correspondent à la convention PEP 8 de Python et sont préférés par certaines équipes pour la cohérence entre les langages. Choisissez-en un et appliquez-le avec un formateur ou une configuration d'éditeur.
Puis-je formater du HTML contenant du JavaScript ou du CSS intégré ?
Cet outil formate la structure HTML (balises et attributs). Les blocs <script> et <style> intégrés sont préservés tels quels. Pour formater du JavaScript et du CSS intégrés, utilisez un formateur dédié comme Prettier, qui peut analyser et formater les trois langages en une seule passe.
Le débat tabulations vs. espaces concerne-t-il encore le HTML ?
La plupart des guides de style et formateurs HTML utilisent les espaces par défaut. L'enquête Stack Overflow Developer Survey 2023 montre que les espaces sont utilisés par environ 55 % des répondants pour le développement web. Les tabulations ont l'avantage d'accessibilité de permettre à chaque développeur de définir sa largeur visuelle préférée. Les deux fonctionnent ; la cohérence au sein d'un projet est plus importante que le choix lui-même.
Pourquoi mon HTML semble-t-il différent après le formatage ?
Le formateur ajoute des espaces et des sauts de ligne qui n'étaient pas dans le code d'origine. Cela change l'apparence du code source mais pas le rendu. Si vous voyez une différence visuelle dans le navigateur, elle est probablement causée par des éléments inline où les espaces ajoutés créent un caractère d'espacement supplémentaire entre les balises, ce qui peut être résolu avec du CSS (font-size: 0 sur le parent, ou une disposition flexbox).
Comment imposer un formatage HTML cohérent au sein d'une équipe ?
Utilisez un formateur automatisé dans votre pipeline CI. Prettier supporte le HTML et peut être exécuté comme un hook de pre-commit via Husky ou lint-staged. Ajoutez un fichier de configuration .prettierrc à votre dépôt en précisant tabWidth, printWidth et htmlWhitespaceSensitivity. Chaque commit suivra alors les mêmes règles de formatage, indépendamment des paramètres d'éditeur de chaque développeur.
Quelle est la différence entre un formateur HTML et un embellisseur HTML ?
Ce sont la même opération. «Formateur» et «embellisseur» désignent tous deux l'ajout d'indentation et de sauts de ligne au code HTML. Certains outils utilisent «beautify» (js-beautify), d'autres «format» (Prettier). Le résultat est identique : du HTML correctement indenté et lisible par un humain. «Pretty-print» est un autre synonyme couramment utilisé dans la documentation et les requêtes de recherche.