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, auf Einrückung basierenden Syntax 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 und wartungsfreundlicherem Code. Haml unterstützt auch Funktionen wie Variablen, Schleifen und bedingte Anweisungen, was Entwicklern die Erstellung dynamischer und wiederverwendbarer Templates ermöglicht. Es fördert die DRY-Prinzipien (Don't Repeat Yourself), indem es die Definition wiederverwendbarer Komponenten und Partial-Dateien erlaubt. 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.