Tracking current during iteration
It's too bad your template engine doesn't support conditions. What about this?

def marked_active_post(orig_posts, active_index):
    posts_view = orig_posts.deepcopy()
    posts_view[active_index]['active?'] = True
    return posts_view


That means n+1 copies instead of 2, but no need to optimize it until it proves to be slow.