Haml (HTML Abstraction Markup Language) è un motore di template progettato per semplificare e snellire la creazione di documenti HTML. È utilizzato principalmente nello sviluppo web, in particolare in 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 (loop) e istruzioni condizionali, consentendo agli sviluppatori di creare template dinamici e riutilizzabili. Incoraggia i principi DRY (Don't Repeat Yourself) permettendo la definizione di componenti e partials riutilizzabili. I file Haml vengono tipicamente pre-elaborati sul 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.