Haml (HTML Abstraction Markup Language) ist eine Template-Engine, die entwickelt wurde, um die Erstellung von HTML-Dokumenten zu vereinfachen und zu optimieren. 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 assoziiert wird, durch eine prägnante und elegante Syntax auf Basis von Einrückungen zu reduzieren. Anstatt Tags explizit zu schließen, verlässt sich Haml auf Einrückungen, um die Struktur des HTML-Dokuments zu definieren. Dies führt zu saubererem, lesbarerem Code, der einfacher zu warten ist. Haml unterstützt zudem Funktionen wie Variablen, Schleifen und bedingte Anweisungen, wodurch Entwickler dynamische und wiederverwendbare Vorlagen erstellen können. Es fördert DRY-Prinzipien (Don't Repeat Yourself), indem es die Definition von wiederverwendbaren Komponenten und Partials ermöglicht. Haml-Dateien werden üblicherweise serverseitig vorverarbeitet, um Standard-HTML zu generieren, das dann an den Browser des Clients gesendet wird. Die Dateiendung '.haml' signalisiert, dass die Datei Haml-Code enthält, der von einer Haml-Engine verarbeitet werden muss, bevor er als HTML gerendert werden kann.