# Haml

> templating system that is designed to avoid writing inline code in a web document and make the HTML cleaner

**Wikidata**: [Q1573599](https://www.wikidata.org/wiki/Q1573599)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Haml)  
**Source**: https://4ort.xyz/entity/haml

## Summary
Haml is a templating system designed to simplify HTML document structure by eliminating inline code and promoting cleaner, more readable markup. It abstracts HTML generation through indentation-based syntax. Haml is primarily used in Ruby-based web development environments.

## Key Facts
- Created by Hampton Lintorn-Catlin and later developed with Nathan Weizenbaum
- First released in December 2006 (version 0.4.0)
- Stable version as of August 2015: 4.0.7
- Licensed under the MIT License
- Official website: https://haml.info
- Source repository: https://github.com/haml/haml
- Instance of: markup language, template processor, template language
- File extension: .haml
- Media type: text/x-haml (unofficial)

## FAQs
### Q: What is Haml used for?
A: Haml is used as a template engine to generate clean HTML markup without embedding inline code. It's commonly used in Ruby on Rails applications to improve code readability and maintainability.

### Q: Who created Haml?
A: Haml was originally created by Hampton Lintorn-Catlin in 2006. Nathan Weizenbaum later became a key contributor and maintainer of the project.

### Q: Is Haml still actively maintained?
A: Yes, Haml is actively maintained. As of March 2023, Nathan Weizenbaum is listed as the current maintainer. The project continues to receive updates and has continuous integration testing in place.

## Why It Matters
Haml addresses a critical pain point in web development: the verbosity and clutter of traditional HTML when mixed with server-side logic. By enforcing a strict indentation-based syntax, Haml eliminates redundancy and promotes cleaner separation between structure and logic. This approach significantly improves code readability and maintainability, especially in complex web applications. Its influence extends beyond Ruby ecosystems, inspiring similar abstraction approaches in other languages. Haml represents a shift toward more intentional, minimalist coding practices that prioritize developer experience alongside functionality.

## Notable For
- Pioneering indentation-based HTML abstraction in web templating systems
- Eliminating the need for closing tags through structural whitespace rules
- Integration with Ruby on Rails ecosystem as a popular alternative to ERB templates
- Maintaining active development and community support since 2006
- Influencing the design of other template languages with similar whitespace-sensitive syntaxes

## Body
### Development History
Haml was initially created by Hampton Lintorn-Catlin in December 2006 with releases 0.4.0 and 1.0.0 both published on December 15, 2006. Nathan Weizenbaum joined as a core contributor and became the listed maintainer by 2023. The haml-mode for Emacs was introduced on March 8, 2007.

### Technical Specifications
The language implements parameterized output encoding mechanisms to prevent injection attacks. It operates under the MIME type text/x-haml (unofficial designation). Files use the .haml extension exclusively. Haml follows the off-side rule language paradigm where indentation determines code blocks.

### Version Timeline
Major stable versions include:
- 1.0.x series beginning December 2006
- 1.5.0 released March 16, 2007
- 4.0.3 released May 21, 2013
- 4.0.7 released August 10, 2015

### Distribution & Packaging
Available through RubyGems as 'haml'. Packaged across Unix distributions including FreeBSD (www/rubygem-haml), OpenBSD (textproc/ruby-haml), NetBSD (textproc/ruby-haml), Gentoo (dev-ruby/haml), and openSUSE (rubygem-haml).

### Community & Infrastructure
Maintained via GitHub at https://github.com/haml/haml with continuous integration configured through Travis CI. Documentation and news hosted at https://haml.info and https://blog.haml.info respectively.

```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "Haml",
  "description": "templating system that is designed to avoid writing inline code in a web document and make the HTML cleaner",
  "url": "https://haml.info",
  "sameAs": [
    "https://www.wikidata.org/wiki/Q1695287"
  ],
  "additionalType": "template language"
}

## References

1. [Source](https://haml.info/editors.html)
2. [Release 4.0.3. 2013](https://github.com/haml/haml/releases/tag/4.0.3)
3. [Release 4.0.7. 2015](https://github.com/haml/haml/releases/tag/4.0.7)
4. [Release 0.4.0. 2006](https://github.com/haml/haml/releases/tag/0.4.0)
5. [Release 1.0.0. 2006](https://github.com/haml/haml/releases/tag/1.0.0)
6. [Release 1.0.1. 2006](https://github.com/haml/haml/releases/tag/1.0.1)
7. [Release 1.0.2. 2007](https://github.com/haml/haml/releases/tag/1.0.2)
8. [Release 1.0.3. 2007](https://github.com/haml/haml/releases/tag/1.0.3)
9. [Release 1.0.4. 2007](https://github.com/haml/haml/releases/tag/1.0.4)
10. [Release 1.0.5. 2007](https://github.com/haml/haml/releases/tag/1.0.5)
11. [Release 1.5.0. 2007](https://github.com/haml/haml/releases/tag/1.5.0)
12. [Release 1.5.1. 2007](https://github.com/haml/haml/releases/tag/1.5.1)
13. [Release 1.5.2. 2007](https://github.com/haml/haml/releases/tag/1.5.2)
14. [Release 1.7.0. 2007](https://github.com/haml/haml/releases/tag/1.7.0)
15. [Release 1.7.1. 2007](https://github.com/haml/haml/releases/tag/1.7.1)
16. [Release 1.7.2. 2007](https://github.com/haml/haml/releases/tag/1.7.2)
17. [Release 1.8.0. 2008](https://github.com/haml/haml/releases/tag/1.8.0)
18. [Release 1.8.1. 2008](https://github.com/haml/haml/releases/tag/1.8.1)
19. [Release 1.8.2. 2008](https://github.com/haml/haml/releases/tag/1.8.2)
20. [Release 2.0.0. 2008](https://github.com/haml/haml/releases/tag/2.0.0)
21. [Release 2.0.1. 2008](https://github.com/haml/haml/releases/tag/2.0.1)
22. [Release 2.0.2. 2008](https://github.com/haml/haml/releases/tag/2.0.2)
23. [Release 2.0.3. 2008](https://github.com/haml/haml/releases/tag/2.0.3)
24. [Release 2.0.4. 2008](https://github.com/haml/haml/releases/tag/2.0.4)
25. [Release 2.0.5. 2008](https://github.com/haml/haml/releases/tag/2.0.5)
26. [Release 2.0.6. 2008](https://github.com/haml/haml/releases/tag/2.0.6)
27. [Release 2.0.7. 2009](https://github.com/haml/haml/releases/tag/2.0.7)
28. [Release 2.0.8. 2009](https://github.com/haml/haml/releases/tag/2.0.8)
29. [Release 2.0.9. 2009](https://github.com/haml/haml/releases/tag/2.0.9)
30. [Release 2.0.10. 2009](https://github.com/haml/haml/releases/tag/2.0.10)
31. [Release 2.2.0. 2009](https://github.com/haml/haml/releases/tag/2.2.0)
32. [Release 2.2.1. 2009](https://github.com/haml/haml/releases/tag/2.2.1)
33. [Release 2.2.2. 2009](https://github.com/haml/haml/releases/tag/2.2.2)
34. [Release 2.2.3. 2009](https://github.com/haml/haml/releases/tag/2.2.3)
35. [Release 2.2.4. 2009](https://github.com/haml/haml/releases/tag/2.2.4)
36. [Release 2.2.5. 2009](https://github.com/haml/haml/releases/tag/2.2.5)
37. [Release 2.2.6. 2009](https://github.com/haml/haml/releases/tag/2.2.6)
38. [Release 2.2.7. 2009](https://github.com/haml/haml/releases/tag/2.2.7)
39. [Release 2.2.8. 2009](https://github.com/haml/haml/releases/tag/2.2.8)
40. [Release 2.2.9. 2009](https://github.com/haml/haml/releases/tag/2.2.9)
41. [Release 2.2.10. 2009](https://github.com/haml/haml/releases/tag/2.2.10)
42. [Release 2.2.11. 2009](https://github.com/haml/haml/releases/tag/2.2.11)
43. [Release 2.2.12. 2009](https://github.com/haml/haml/releases/tag/2.2.12)
44. [Release 2.2.13. 2009](https://github.com/haml/haml/releases/tag/2.2.13)
45. [Release 2.2.14. 2009](https://github.com/haml/haml/releases/tag/2.2.14)
46. [Release 2.2.15. 2009](https://github.com/haml/haml/releases/tag/2.2.15)
47. [Release 2.2.16. 2009](https://github.com/haml/haml/releases/tag/2.2.16)
48. [Release 2.2.17. 2010](https://github.com/haml/haml/releases/tag/2.2.17)
49. [Release 2.2.18. 2010](https://github.com/haml/haml/releases/tag/2.2.18)
50. [Release 2.2.19. 2010](https://github.com/haml/haml/releases/tag/2.2.19)