Haml (HTML Abstraction Markup Language) est un moteur de templating 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 que des implémentations existent également pour d'autres langages. Haml vise à réduire la quantité de code répétitif et verbeux typiquement associée au HTML en utilisant une syntaxe concise et élégante basée sur l'indentation. Au lieu de fermer explicitement les balises, 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 modèles dynamiques et réutilisables. Il encourage les principes DRY (Don't Repeat Yourself) en permettant la définition de composants et de parties réutilisables. Les fichiers Haml sont généralement prétraités côté serveur 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 HTML.