Haml (HTML Abstraction Markup Language) é um motor de template (templating engine) projetado para simplificar e otimizar a criação de documentos HTML. É usado principalmente no desenvolvimento web, particularmente dentro do Ruby on Rails e outros frameworks baseados em Ruby, embora existam implementações para outras linguagens de programação. O Haml visa reduzir a quantidade de código repetitivo e verboso tipicamente associado ao HTML, utilizando uma sintaxe concisa e elegante baseada em indentação. Em vez de fechar tags explicitamente, o Haml depende da indentação para definir a estrutura do documento HTML. Isso resulta em código mais limpo, mais legível e mais fácil de manter. O Haml também suporta recursos como variáveis, loops (laços de repetição) e declarações condicionais, permitindo que os desenvolvedores criem templates dinâmicos e reutilizáveis. Ele incentiva os princípios DRY (Don't Repeat Yourself – Não Se Repita) ao permitir a definição de componentes reutilizáveis e "partials" (parciais). Os arquivos Haml são tipicamente pré-processados no lado do servidor (server-side) para gerar HTML padrão, que é então enviado ao navegador do cliente. A extensão '.haml' significa que o arquivo contém código Haml que precisa ser processado por um motor Haml (Haml engine) antes de poder ser renderizado como HTML.