{# Based on https://github.com/alphagov/govuk-frontend/blob/8b6bf304b9fc891f64459c25a08f3d623f3fea72/packages/govuk-frontend/src/govuk/template.njk #}

{%- from "nationalarchives/components/cookie-banner/macro.njk" import tnaCookieBanner -%}
{%- from "nationalarchives/components/footer/macro.njk" import tnaFooter -%}
{%- from "nationalarchives/components/header/macro.njk" import tnaHeader -%}
{%- from "nationalarchives/components/skip-link/macro.njk" import tnaSkipLink -%}

{#-
  Truncate any pageTitle that would cause the length of the <title> to exceed 70 characters
  See https://html-validate.org/rules/long-title.html
-#}
{%- set pageTitle = pageTitle or '' -%}
{%- set maxTotalTitleLength = 70 -%}
{%- set maxSiteTitleLength = 30 if pageTitle and (pageTitle | length) > (maxTotalTitleLength - 30) else maxTotalTitleLength -%}
{%- set truncatingCharacters = '...' -%}
{%- set siteTitle = (siteTitle or 'The National Archives') | truncate(maxSiteTitleLength, False, truncatingCharacters, 0) -%}
{%- set titleCharsRemaining = maxTotalTitleLength - ((siteTitle | length) + (truncatingCharacters | length)) -%}
{%- if pageTitle and (pageTitle | length) > titleCharsRemaining -%}
  {%- set pageTitle = pageTitle | truncate(titleCharsRemaining, False, truncatingCharacters, 0) -%}
{%- endif -%}

<!DOCTYPE html>
<html lang="{{ htmlLang | default('en') }}" class="tna-template{% if theme and theme != 'light' %} tna-template--{{ theme }}-theme{% endif %}{% if themeAccent %} tna-template--{{ themeAccent }}-accent{% endif %}{% if htmlClasses %} {{ htmlClasses }}{% endif %}"{% for attribute, value in htmlAttributes %} {{ attribute }}{% if value !== '' %}="{{ value }}"{% endif %}{% endfor %}>
  <head>
    <meta charset="utf-8">
    <title>{% block pageTitle %}{% if pageTitle %}{{ pageTitle }} - {% endif %}{{ siteTitle }}{% endblock pageTitle %}</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
    <meta name="theme-color" content="{{ themeColor | default('#010101') }}">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    {% block headIcons %}
    <link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{ assetPath | default('/assets/') }}images/favicon.ico" type="image/x-icon">
    <link rel="mask-icon" href="{{ assetPath | default('/assets/') }}images/mask-icon.svg" color="{{ themeColor | default('#010101') }}">
    <link rel="apple-touch-icon" sizes="48x48" href="{{ assetPath | default('/assets/') }}images/icon-48x48.png">
    <link rel="apple-touch-icon" sizes="72x72" href="{{ assetPath | default('/assets/') }}images/icon-72x72.png">
    <link rel="apple-touch-icon" sizes="96x96" href="{{ assetPath | default('/assets/') }}images/icon-96x96.png">
    <link rel="apple-touch-icon" sizes="120x120" href="{{ assetPath | default('/assets/') }}images/icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="{{ assetPath | default('/assets/') }}images/icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="{{ assetPath | default('/assets/') }}images/icon-152x152.png">
    <link rel="apple-touch-icon" sizes="167x167" href="{{ assetPath | default('/assets/') }}images/icon-167x167.png">
    <link rel="apple-touch-icon" sizes="180x180" href="{{ assetPath | default('/assets/') }}images/icon-180x180.png">
    <link rel="apple-touch-icon" sizes="192x192" href="{{ assetPath | default('/assets/') }}images/icon-192x192.png">
    <link rel="apple-touch-icon" sizes="256x256" href="{{ assetPath | default('/assets/') }}images/icon-256x256.png">
    <link rel="apple-touch-icon" sizes="512x512" href="{{ assetPath | default('/assets/') }}images/icon-512x512.png">
    <link rel="apple-touch-icon" sizes="1024x1024" href="{{ assetPath | default('/assets/') }}images/icon-1024x1024.png">
    {% endblock headIcons %}

    {% block head %}{% endblock head %}

    {% block stylesheets %}{% endblock stylesheets %}
  </head>
  <body class="tna-template__body{% if bodyClasses %} {{ bodyClasses }}{% endif %}"{% for attribute, value in bodyAttributes %} {{ attribute }}{% if value !== '' %}="{{ value }}"{% endif %}{% endfor %}>
    {% block bodyStart %}
      <a id="top"></a>
      
      {% block cookies %}
        {{ tnaCookieBanner({
          cookiesUrl: '#/cookies'
        }) | indent(6) }}
      {% endblock cookies %}
      
      {% block skipLink %}
      {{ tnaSkipLink({
        href: 'main-content',
        text: 'Skip to main content'
      }) | indent(6) }}
      {% endblock skipLink %}
    {% endblock bodyStart %}

    {% block header %}
      {{ tnaHeader({}) | indent(4) }}
    {% endblock header %}

    {% block main %}
      {% block beforeContent %}{% endblock beforeContent %}
      <main class="tna-main{% if mainClasses %} {{ mainClasses }}{% endif %}" id="main-content">
        {% block content %}{% endblock content %}
      </main>
      {% block afterContent %}{% endblock afterContent %}
    {% endblock main %}

    {% block footer %}
      {{ tnaFooter({}) | indent(4) }}
    {% endblock footer %}

    {% block bodyEnd %}{% endblock bodyEnd %}
  </body>
</html>
