Haml (HTML Abstraction Markup Language) est un moteur de templating (ou moteur de gabarits) conçu pour simplifier et rationaliser la création de documents HTML. Il est principalement utilisé dans le développement web, notamment au sein de Ruby on Rails et d'autres frameworks basés sur Ruby, bien qu'il existe également des implémentations pour d'autres langages. Haml vise à réduire la quantité de code répétitif et verbeux généralement associée au HTML en utilisant une syntaxe concise et élégante basée sur l'indentation. Au lieu de fermer les balises explicitement, Haml s'appuie sur l'indentation pour définir la structure du document HTML. Cela conduit à un code plus propre, plus lisible et plus facile à maintenir. Haml prend également en charge des fonctionnalités telles que les variables, les boucles et les instructions conditionnelles, permettant aux développeurs de créer des gabarits dynamiques et réutilisables. Il encourage les principes DRY (Don't Repeat Yourself – Ne vous répétez pas) en permettant la définition de composants et de partiels réutilisables. Les fichiers Haml sont généralement pré-traités côté serveur (server-side) pour générer du HTML standard, qui est ensuite envoyé au navigateur du client. L'extension '.haml' signifie que le fichier contient du code Haml qui doit être traité par un moteur Haml avant de pouvoir être rendu en tant que HTML.