src/ej/templates/jinja2/base.jinja2
{% set page_title = page_title|default(settings.EJ_PAGE_TITLE) -%}
{% set main_tag = main_tag|default("main") %}
<!DOCTYPE html>
<html lang="{{ get_language() }}">
<head>
<meta charset="utf-8">
<title>{{ page_title }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
{% block meta %}{% endblock %}
{% block css %}{% include 'ej/includes/head/css.jinja2' %}{% endblock %}
{% block javascript %}{% include 'ej/includes/head/javascript.jinja2' %}{% endblock %}
{% include ['ej/includes/head/favicons.jinja2',
'ej/includes/head/pwa.jinja2',
'ej/includes/head/open_graph.jinja2'] %}
</head>
{%- block body %}
<body class="{{ body_class|default('body') }}" {% if request is defined %}data-current-url="{{ request.path }}"{% endif %} {{ salt_attr()|safe }}>
<script>(function () {
document.querySelector('body').classList.add('js')
})();</script>
{% if has_content_link|default(aria_flow|default(false)) %}<a id="first-link" href="#{{ aria_flowto|default('page-wrapper') }}" accesskey="1">{{ _('Jump to main content') }}</a>{% endif %}
<div id="page-wrapper">
{%- if not hide_menu|default(False) %}
{%- if menu_contents is defined %}{{ page_menu(menu_contents|default([]), request=request) }}
{% else %}
{% call page_menu() %}
{%- block menu %}{{ page_menu.DEFAULT_MENU_SECTIONS(request)|safe }}{% endblock %}
{% endcall %}
{% endif %}
{% endif %}
{%- block main %}
<{{ main_tag }} id="main-content" tabindex=0 class="{{ main_class|default('container-1') }}{% if request is defined %}{{- '' if request.user.is_authenticated else ' is-anonymous' }}"{% endif %}>
{%- block message_area %}
<div id="message-area" up-hungry role="status" role="alert" aria-live="polite" {% if aria_flowto is defined %}aria-flowto="{{ aria_flowto }}"{% endif %}>
{% for msg in get_messages() %}
<div class="toast"{% if msg.tags %} {{ msg.tags }}{% endif %} tabindex="0">{{ msg|safe }}</div>
{% endfor %}
</div>
<script> window.addEventListener('load', function () {
var e = document.getElementById('message-area'),
t = document.getElementById(e.getAttribute('aria-flowto'));
if (!t) { e.removeAttribute('aria-flowto') }
});
</script>
{% endblock %}
{% if content is defined %}
{{ content }}
{% else %}
{% block content %}
{% if content_html is defined %}
{{ content_html|safe }}
{% else %}
<p>{{ _('Please override the "content" block of your template!') }}</p>
{% endif %}
{% endblock content %}
{% endif %}
</{{ main_tag }}>
{% endblock %}
</div>
{% if not hide_header|default(False) %}{% include 'ej/includes/header.jinja2' %}{% endif %}
</body>
{% endblock body %}
</html>