>
HTML Abstraction Markup Language- HAML
Welcome, Guest

by Rishi on Thursday, 31 March 2011
HTML Abstraction Markup Language- HAML


HAML-- HTML Abstraction Markup Langauge

 

About HAML

Haml (HTML Abstraction Markup Language) is a lightweight markup language that is used to describe the XHTML of any web document without the use of traditional inline coding. It’s designed to address many of the flaws in traditional templating engines, as well as making markup as elegant as it can be. Haml functions as a replacement for inline page templating systems suchas PHP, RHTML, and ASP. However, Haml avoids the need for explicitly coding XHTML into the template, because it is itself a description of the XHTML, with some code to generate dynamic content.�

Haml's equivalent for CSS is Sass, which comes with Haml.�

 

Principles

1. Markup should be beautiful:-
Markup should not be used merely as a tool to get browsers to render a page the way its author wants it rendered. The rendering isn't the only thing people have to see; they have to see, modify, and understand the markup as well. Thus, the markup should be just as user-friendly and pleasant as the rendered result.
2.Markup should be DRY:-
XHTML involves major repetition. Most elements have to be named twice: once before its content and once after. ERB adds even more repetition and unnecessary characters. Haml avoids all of this by relying on indentation, not text, to determine where elements and blocks of code begin and end. Not only does this result in smaller templates, it makes the code much cleaner to look at.
3.Markup should be well-indented:-
One of the major problems with traditional templating languages is that not only do they not encourage well-indented code, they actively make it challenging, or even impossible, to write. The result is confusing, unreadable XHTML. Haml formats tags so they are well indented and reflect the underlying structure of the document.
4.XHTML structure should be clear
XML and XHTML are formats built upon the idea of a structured document. That structure is reflected in their markup, and it should likewise be reflected in meta-markup such as Haml. Because Haml's logic is based on indentation of child elements, this structure is naturally preserved, making the document much easier and more logical for mere humans to read.

 

Example

Note: This is a simple preview example and may not reflect the current version of the language.

!!! %html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"} 
%head     
  %title BoBlog     
  %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}     
  %link{"rel" => "stylesheet", "href" => "main.css", "type" => "text/css"}   
%body     
  #header      
   %h1 BoBlog       
   %h2 Bob's Blog     
    #content       - @entries.each do |entry|         
    .entry           %h3.title= entry.title           
    %p.date= entry.posted.strftime("%A, %B %d, %Y")           
    %p.body= entry.body     
    #footer       
     %p         All content copyright � Bob 

 

The above Haml would produce this XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>   
<head>     
<title>BoBlog</title>     
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />     
<link href="/stylesheets/main.css" media="screen" rel="Stylesheet" type="text/css" />   
</head>   
<body>     
<div id='header'>       
<h1>BoBlog</h1>       
<h2>Bob's Blog</h2>     
</div>     
<div id='content'>       
<div class='entry'>         
  <h3 class='title'>Halloween</h3>         
  <p class='date'>Tuesday, October 31, 2006</p>         
  <p class='body'>           
	Happy Halloween, glorious readers! I'm going to a party this evening... 
	  I'm very excited
   </p>       
</div>       
<div class='entry'>       
  <h3 class='title'>New Rails Templating Engine</h3>       
  <p class='date'>Friday, August 11, 2006</p>      
  <p class='body'>          
      There's a very cool new Templating Engine out for Ruby on Rails. It's called Haml.         
   </p>       
</div>     
</div>     
<div id='footer'>       
   <p>         All content copyright � Bob       </p>     
</div>   
</body> 
</html>

Implementations

The official implementation of Haml has been built for Ruby with plugins for Ruby on Rails and Merb, but the Ruby implementation also functions independently.

There are also implementations in other languages:

 

Development

Haml was invented in May 2006 by Hampton Catlin, who continues to work on the implementation and the ideas behind Haml. However, Nathan Weizenbaum is responsible for much of the recent growth and maturation of the Haml codebase.�

 




Blogger Image
My Blog Title

Product Engineering, software engineering company, Product Development, Product Migration, Product Re-engineering, Product Maintenance, Product Testing Commercial Application Development, Business Software development, commercial software for startups, Application Support and Maintenance, software testing Product Maintenance, Outsource product maintenance, product support and maintenance Product Migration, Product Re-engineering, product re-engineering services Product Research, Product Engineering, UI Prototyping Services Software Testing Services, Quality Assurance services, professional software testers, Load Testing, Functional Testing, Cross Platform, Browser Testing, Test Automation, Testing Tools, software quality analysis Functional Testing Services, software quality analysis, Software Testing Services, Application Testing Services, Functional Testing Types Automated Testing, Automated Testing Services, automation testing, test script development, Automation Test Tools, outsource automation testing Load Testing, Performance Testing Services, Load Testing Tools Offshore Software Development, Outsource software services, offshore outsourcing services, offshore software development services, IT outsourcing services, software quality assurance services, Offshore IT services, Custom Application Development Services, Offshore Product Engineering Benefits of IT Outsourcing, Offshore Software Development companies, offshore software development firms Outsource planning, IT outsourcing, IT development services, offshore IT companies, offshore software development Offshore Software Development, Outsource software services, offshore outsourcing services, offshore software development services, IT outsourcing services, software quality assurance services, Offshore IT services, Custom Application Development Services, Offshore Product Engineering Offshore Software Development, Outsource software services, offshore outsourcing services, offshore software development services, IT outsourcing services, software quality assurance services, Offshore IT services, Custom Application Development Services, Offshore Product Engineering