{# The whole thread. Returned after a rewind, which changes an arbitrary number of messages at once -- replacing the lot is simpler and less error-prone than working out which individual bubbles to remove. Also included by chat/index.html, so the conversation is described in exactly one place. Deliberately has no root element: it is swapped with innerHTML into #thread, and an outerHTML swap would take the container with it. #} {% for message in messages %} {% with body_html = bodies.get(message.id, "") %} {% include "chat/_message.html" %} {% endwith %} {% endfor %}