Since the very beginning, BartleBlog has been using CherryTemplate for its output formatting needs. I like it, because it's very simple.
However, it had grown rather cumbersome.
Specifically, most pages in a blog are sort of a page template with a body template inside (the main content).
To do that on CherryTemplate, I used a two-pass approach: generate the body, then pass it as parameter to the page template.
Which is a pain in some cases because you end basically having to do a rendering function for each kind of page, or some crazy-evil function (what I did).
Exploring the different python template engines, I ran into Mako and decided to give it a whirl. It looks good.
The approach is a bit different, it is much more powerful, but you can still use it simply if you can.
And the main feature was template inheritance. Using that, no more inner and outer templates, baby!
Oh, and performance is better:
Cherry
real 31m44.732s
user 21m18.336s
sys 2m7.628s
Mako
real 24m54.472s
user 19m9.508s
sys 1m56.375s
This is for completely rerendering the whole 7 years, 574 posts, 40 static articles, 14 category blog, and there is tons of optimizations to be done.
BTW: this is how you rerender the whole blog:
from BartleBlog.backend.blog import Blog
Blog().renderFullBlog()