Haml (HTML Abstraction Markup Language) ist eine Template-Engine, die zur Vereinfachung und Optimierung der Erstellung von HTML-Dokumenten entwickelt wurde. Sie wird hauptsächlich in der Webentwicklung eingesetzt, insbesondere innerhalb von Ruby on Rails und anderen Ruby-basierten Frameworks, obwohl Implementierungen auch für andere Sprachen existieren. Haml zielt darauf ab, die Menge an repetitivem und ausführlichem Code, der typischerweise mit HTML verbunden ist, durch die Verwendung einer prägnanten und eleganten Syntax, die auf Einrückung basiert, zu reduzieren. Anstatt Tags explizit zu schließen, verlässt sich Haml auf die Einrückung, um die Struktur des HTML-Dokuments zu definieren. Dies führt zu saubererem, besser lesbarem Code, der einfacher zu warten ist. Haml unterstützt auch Funktionen wie Variablen, Schleifen und bedingte Anweisungen, was Entwicklern ermöglicht, dynamische und wiederverwendbare Templates zu erstellen. Es fördert die DRY-Prinzipien (Don't Repeat Yourself), indem es die Definition wiederverwendbarer Komponenten und Partial-Dateien ermöglicht. Haml-Dateien werden typischerweise auf dem Server vorverarbeitet, um Standard-HTML zu generieren, welches dann an den Browser des Clients gesendet wird. Die Erweiterung '.haml' signalisiert, dass die Datei Haml-Code enthält, der von einer Haml-Engine verarbeitet werden muss, bevor er als HTML gerendert werden kann.