{{ _('Latest news, fixes and known issues from the developers') }}
{# data-settings-updates-url: static/devinfos.js rebuilds these cards on every
refresh and needs the same deep link the server-rendered ones use. Passed
as data instead of hardcoded in the script. #}
{{ post.release_name or post.release_tag }}
{% if post.release_name and post.release_tag and post.release_name != post.release_tag %}
{{ post.release_tag }}
{% endif %}
{% if post.release_published %}{{ post.release_published }}{% endif %}
{{ _('Go to updates') }}
{% endif %}
{# body_html is the bleach-sanitised render of the (untrusted) remote
feed body -- see web/markdown_utils.py. There used to be a
|default(post.body, true) fallback here, which substituted the RAW
body and then marked it safe whenever the sanitised HTML came back
falsy: i.e. exactly when bleach had stripped everything, which is
the case where empty is the correct output. index.html renders the
same field without a fallback. #}
{{ post.body_html|safe }}
{# The release notes, collapsed by default: GitHub release bodies are
often long and this is a feed, not a changelog page. does
the open/close natively -- no JS, and it keeps working in the list
that static/devinfos.js re-renders wholesale every 60s. #}
{% if post.release_notes_html %}
{{ _('Changelog') }} {{ post.release_tag }}