A converter of HAML like templates into Django templates.
Python Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 173 commits behind jessemiller:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



HamlPy (pronounced "haml pie") is a tool for Django developers who want to use a Haml like syntax for their templates. HamlPy is not a template engine in itself but simply a compiler which will convert HamlPy files into templates that Django can understand.

But wait, what is Haml? Haml is an incredible template engine written in Ruby used a lot in the Rails community. You can read more about it here


Almost all of the XHTML syntax of Haml is preserved.

		#date 2010/02/18
		#address Toronto, ON
		#bio Jesse Miller

turns into..

<div id='profile'>
	<div class='left column'>
		<div id='date'>2010/02/18</div>
		<div id='address'>Toronto, ON</div>
	<div class='right column'>
		<div id='bio'>Jesse Miller</div>

The main difference is instead of interpreting Ruby, or even Python we instead can create Django Tags and Variables

	- for athelete in athelete_list
		%li.athelete{'id': 'athelete_{{ athelete.pk }}'}= athelete.name

turns into..

<ul id='atheletes'>
	{% for athelete in athelete_list %}
		<li class='athelete' id='athelete_{{ athelete.pk }}'>{{ athelete.name }}</li>
	{% endfor %}


Check out the reference.md file for a complete reference and more examples.


HamlPy currently:

  • has no configuration file. which it should for a few reasons, like turning off what is autoescaped for example
  • does not support some of the filters yet


Very happy to have contributions to this project. Please write tests for any new features and always ensure the current tests pass. You can run the tests from the hamlpy/test using nosetests by typing

nosetests *.py