Haml (HTML Abstraction Markup Language) è un motore di templating (motore di modelli) 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 di programmazione. 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 gerarchica del documento HTML. Ciò si traduce in un codice più pulito, più leggibile e notevolmente più facile da mantenere. Haml supporta anche funzionalità avanzate come variabili, cicli (loops) e istruzioni condizionali, consentendo agli sviluppatori di creare modelli dinamici e riutilizzabili. Incoraggia fortemente i principi DRY (Don't Repeat Yourself - Non Ripeterti) permettendo la definizione di componenti e 'partials' riutilizzabili. I file Haml vengono tipicamente pre-processati lato server (server-side) per generare HTML standard, che è 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.