Haml (HTML Abstraction Markup Language) è un motore di templating progettato per semplificare e ottimizzare la creazione di documenti HTML. È utilizzato principalmente nello sviluppo web, in particolare all'interno di Ruby on Rails e altri framework basati su Ruby, sebbene esistano implementazioni anche per altri linguaggi. Haml mira a ridurre la quantità di codice ripetitivo e verboso tipicamente associato all'HTML utilizzando una sintassi concisa ed elegante basata sull'indentazione. Invece di chiudere esplicitamente i tag, Haml si affida all'indentazione per definire la struttura del documento HTML. Ciò porta a un codice più pulito, più leggibile e più facile da mantenere. Haml supporta anche funzionalità come variabili, cicli (loops) e istruzioni condizionali, consentendo agli sviluppatori di creare template dinamici e riutilizzabili. Incoraggia i principi DRY (Don't Repeat Yourself - Non Ripeterti) permettendo la definizione di componenti riutilizzabili e partials. I file Haml vengono tipicamente pre-elaborati (preprocessed) lato server per generare HTML standard, che viene poi inviato al browser del client. L'estensione '.haml' indica che il file contiene codice Haml che deve essere elaborato da un motore Haml prima di poter essere renderizzato come HTML.