How to track state when iterating in Python's Mako Templates

mako, python, templates

Solution

I do stuff like this:

<%def name="format( item )"><a href="#${item|u}">${item|u}</a>
</%def>

${', '.join( format(item) for item in l)}

Problem

I want to loop over a list and print the elements seperated by ',', with no trailing comma. I can't just `', '.join(headings)` because of the formating and escaping. But the following obviously leaves me with a trailing comma. ``` % for x in headings: <a href='#${x|u}'>${x}</a>, \ % endfor ``` Or more generally: When iterating over something in a Mako template, is there a way to know if I reached the last element (or first, or nt)?

Original source