One other area where abstraction is appropriate is form generation. I've used Django a lot and recently Clojure+Noir a bit, and in both of those I've ended up using an abstraction for all the form code (Django forms in the former, Hiccup+helpers in the latter). In the Clojure project I was even working with someone knew HTML and not Clojure, so most of the site is rendered using Mustache templates, but I ended up rewriting all the forms in Hiccup because it's just easier to work with.
All that said, you seem like someone that might like Enlive (https://github.com/cgrand/enlive). I'm not sure if equivalents exist in other languages, but the gist of using it for templating is that you write a plain HTML file, and run the text through Enlive along with some transforms (identified by CSS-style selectors). I've never used it for anything major, but other people have, and it seems really cool.
Enlive is kind of like haml from what I see. For me its right on the border, I like it, I see the benefits but you have to take some leap and believe you wont hit the pit.
For example NodeJs allows to use same JavaScript for both client and server and if we will have smth like http://lispyscript.com/docs/#templates we can also seamless export business logic into templates (without need to create special template tags, filters, syntax, etc).
Single language for almost everything can be big performance boost IMO.
"""You probably know this feeling when you think that code is not ready for public release yet and you need to implement at least 50% of your huge todo.txt to make it good enough.
Today in the morning news on TV was said that we all need to finish postponed stuff because Mayan 'End of Time' is too close to postpone again. I said: "Well, if even Maya need this, I will release today". """
Either way, thanks for releasing your code. I'll check it out later. I love reading python.
[1] http://news.cnet.com/8301-17938_105-57556172-1/nasa-there-wi...
http://code.activestate.com/recipes/286210-very-basic-exampl...