{#- Public page of one event. Slot for features that build on events: events.detail.before_meta called per event, hook(event), above the meta row (room, time, speaker) -#} {% extends "public_base.html" %} {% block title %}{{ event.title }} — {{ SPLENT_APP }}{% endblock %} {% block hero %} {{ render_block('hero', eyebrow=_(event.kind), title=event.title, subtitle=event.summary) }} {% endblock %} {% block content %}
{% for hook in get_template_hooks("events.detail.before_meta") %} {{ (hook(event) or "") | safe }} {% endfor %} {% if event.room or event.starts_at or event.speaker %} {% endif %} {#- The image and the link are addresses typed in the panel, so they go through safe_url, which leaves a javascript: or data: address stored before the form refused one pointing nowhere. -#} {% if event.image %} {% endif %} {# The description is stored HTML, so it goes through rich_text, which keeps the formatting and drops scripts, handlers and unsafe links. #}
{{ event.description | rich_text }}
{% if event.link %}

{{ _('More info') }}

{% endif %}

← {{ _('Back to events') }}

{% endblock %}