gnu-social/templates/base.html.twig

112 lines
4.5 KiB
Twig

<!DOCTYPE html>
<html lang="en">
<head>
{% block meta %}
{# This is far from perfect. The response headers should already come with this. #}
{% if app.request.server.get('APP_ENV') not in ['test', 'dev'] %}
<meta http-equiv="Content-Security-Policy" content="default-src https:">{% endif %}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="home" href="/">
{% endblock %}
<title>
{% block title %}{% endblock %}
</title>
{% block stylesheets %}
<link rel='stylesheet' type='text/css' href="{{ asset('assets/default_theme/css/root.css') }}">
<link rel='stylesheet' type='text/css' href="{{ asset('assets/default_theme/css/base.css') }}">
{% for stylesheet in show_stylesheets(app.request.get('_route')) %}
<link rel='preload' type='text/css' as='style' href="{{ preload(asset(stylesheet), { as: 'style' }) }}">
<link rel='stylesheet' type='text/css' as='style' href="{{ asset(stylesheet) }}">
{% endfor %}
{% endblock %}
{% for arr in handle_event('ShowHeadElements', app.request) %}
{# Only one element, but has dynamic value, can't access it directly #}
{% for type, element in arr %}
<{{ type }} rel="{{ element['rel'] }}" type="{{ element['type'] }}" href="{{ element['href'] }}" title="{{ element['title'] }}">
{% endfor %}
{% endfor %}
{% for block in handle_event('AppendToHead', app.request) %}
{{ block | raw }}
{% endfor %}
</head>
<body>
<aside class="accessibility-menu">
<h2 class="accessibility-menu-title" tabindex="0">{{ 'Accessibility menu.' | trans }}</h2>
<p tabindex="0">{{ 'Here you can find fast shortcuts to various page regions!' | trans }}</p>
<p tabindex="0">{{ 'Provided the following keyboard shortcut, the link is targeted.' | trans }}</p>
<br>
<p tabindex="0">{{ 'Be mindful that another ' | trans }}<kbd>Tab</kbd>{{ ' is needed in order to focus.' | trans }}
</p>
<p tabindex="0">
{% if is_firefox() == true %}
<em><kbd>Alt</kbd> + <kbd>Shift</kbd> + "access key"</em>
{% else %}
<em><kbd>Alt</kbd> + "access key"</em>
{% endif %}
</p>
<br>
<a id="anchor-accessibility-menu" accesskey="z" href="#anchor-accessibility-menu">
<strong>{{ 'The keyboard key ' | trans }}<kbd>Z</kbd>{{ ' accesses this menu.' | trans }}</strong>
<strong>{{ 'The other access keys are:' | trans }}</strong>
</a>
<nav>
<ul>
<li><a href="#anchor-left-panel" accesskey="h"><kbd>H</kbd>{{ ' for the Left panel.' | trans }}</a></li>
<li><a href="#anchor-main-content" accesskey="k"><kbd>K</kbd>{{ ' for the main content.' | trans }}</a></li>
<li><a href="#anchor-main-page" accesskey="j"><kbd>J</kbd>{{ ' for the main page.' | trans }}</a></li>
<li><a href="#anchor-right-panel" accesskey="l"><kbd>L</kbd>{{ ' for the right panel.' | trans }}</a></li>
</ul>
</nav>
</aside>
{% block header %}
{% set extra_header_forms = handle_event('AddExtraHeaderForms', request) %}
<header class="page-header">
{{ block("leftpanel", "stdgrid.html.twig") }}
<a id="anchor-main-page" class="anchor-hidden"
title="{{ 'Press tab to access instance\'s main page.' | trans }}"></a>
<a class="accessibility-target header-instance" href="{{ path('feed_public') }}" tabindex="0"
title="{{ 'This instance\'s name. Access public feed.' | trans }}">
<h1>{{ icon('logo', 'icon icon-logo') | raw }}{{ config('site', 'name') }}</h1>
</a>
<details class="header-extra-actions">
<summary>
{{ icon('kebab', 'icon icon-details-open') | raw }}
</summary>
<div class="header-extra-actions-open">
{% for extra_form in extra_header_forms %}
{{ form(extra_form) }}
{% endfor %}
</div>
</details>
{{ block("rightpanel", "stdgrid.html.twig") }}
</header>
{% endblock header %}
<div class="page-content-wrapper">
<a role="navigation" rel="help" id="anchor-main-content" class="anchor-hidden"
title="{{ 'Press tab to access main content.' | trans }}"></a>
<div class='page-content accessibility-target'>
{% block nav %}{% endblock %}
{% block body %}{% endblock %}
{% block javascripts %}{% endblock javascripts %}
</div>
</div>
</body>
</html>