Haml (HTML Abstraction Markup Language) è un motore di template progettato per semplificare e ottimizzare la creazione di documenti HTML. Viene 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 prolisso 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, leggibile e facile da mantenere. Haml supporta inoltre funzionalità come variabili, cicli e istruzioni condizionali, consentendo agli sviluppatori di creare template dinamici e riutilizzabili. Promuove i principi DRY (Don't Repeat Yourself) permettendo la definizione di componenti riutilizzabili e partial. I file Haml vengono solitamente pre-elaborati 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.