basic-8.x-2.x-dev/templates/layout/html.html.twig
templates/layout/html.html.twig
{#
/**
* @file
* Default theme implementation for the basic structure of a single Drupal page.
*
* Variables:
* - logged_in: A flag indicating if user is logged in.
* - root_path: The root path of the current page (e.g., node, admin, user).
* - node_type: The content type for the current node, if the page is a node.
* - css: A list of CSS files for the current page.
* - head: Markup for the HEAD element (including meta tags, keyword tags, and
* so on).
* - head_title: A modified version of the page title, for use in the TITLE tag.
* - head_title_array: List of text elements that make up the head_title
* variable. May contain or more of the following:
* - title: The title of the page.
* - name: The name of the site.
* - slogan: The slogan of the site.
* - page_top: Initial rendered markup. This should be printed before 'page'.
* - page: The rendered page markup.
* - page_bottom: Closing rendered markup. This variable should be printed after
* 'page'.
* - styles: Style tags necessary to import all necessary CSS files in the head.
* - scripts: Script tags necessary to load the JavaScript files and settings
* in the head.
* - db_offline: A flag indicating if the database is offline.
* - placeholder_token: The token for generating head, css, js and js-bottom
* placeholders.
*
* @see template_preprocess_html()
*
* @ingroup themeable
*/
#}
<!DOCTYPE html>
<html{{ html_attributes }}>
<head>
<head-placeholder token="{{ placeholder_token }}">
<title>{{ head_title|safe_join(' | ') }}</title>
<css-placeholder token="{{ placeholder_token }}">
<js-placeholder token="{{ placeholder_token }}">
</head>
{% set classes = [] %}
{% for role in user.roles %}
{% set classes = classes|merge(['role--' ~ role|clean_class]) %}
{% endfor %}
{% set sidebar_first = page.sidebar_first|render %}
{% set sidebar_second = page.sidebar_second|render %}
<body{{ attributes.addClass(classes,
not is_front ? 'with-subnav',
sidebar_first ? 'sidebar-first',
sidebar_second ? 'sidebar-second',
(sidebar_first and not sidebar_second) or (sidebar_second and not sidebar_first) ? 'one-sidebar',
(sidebar_first and sidebar_second) ? 'two-sidebars',
(not sidebar_first and not sidebar_second) ? 'no-sidebar',
node_type ? 'node--type-' ~ node_type|clean_class,
not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class
) }}>
<div id="skip">
<a href="#main-menu" class="visually-hidden focusable skip-link">
{{ 'Skip to main navigation'|t }}
</a>
</div>
{{ page_top }}
{{ page }}
{{ page_bottom }}
<js-bottom-placeholder token="{{ placeholder_token }}">
{% if browser_sync.enabled %}
<script id="__bs_script__">
document.write("<script async src='http://{{ browser_sync.host }}:{{ browser_sync.port }}/browser-sync/browser-sync-client.js'><\/script>".replace("HOST", location.hostname));
</script>
{% endif %}
</body>
</html>
