{% extends "govuk/template.njk" %}

{% set assetUrl = assetPath | absoluteUrl(options.url) %}
{% set htmlClasses = "no-js" %}
{% set themeColor = options.themeColour %}

{# Only show default Open Graph image if document does not provide its own #}
{% set opengraphImage = image if image.opengraphImage else opengraphImage %}
{% set opengraphImageUrl = options.opengraphImageUrl if not opengraphImage %}

{# Pagination #}
{% set pageNumber = pagination.pageNumber + 1 %}
{% set pageCount = pagination.pages | length %}

{# Navigation #}
{% set breadcrumbItems = collections.all | eleventyNavigationBreadcrumb(eleventyNavigation.key, { includeSelf: includeInBreadcrumbs }) | itemsFromNavigation(page.url, options) if eleventyNavigation.key %}
{% set minimumItemsInBreadcrumbs = 0 %}
{% set minimumItemsInBreadcrumbs = 1 if options.parentSite %}
{% set showBreadcrumbs = breadcrumbItems | length > minimumItemsInBreadcrumbs %}

{# Components #}
{% from "govuk/components/breadcrumbs/macro.njk" import govukBreadcrumbs %}
{% from "govuk/components/pagination/macro.njk" import govukPagination %}

{% from "x-govuk/components/masthead/macro.njk" import xGovukMasthead %}
{% from "x-govuk/components/related-navigation/macro.njk" import xGovukRelatedNavigation %}
{% from "x-govuk/components/sub-navigation/macro.njk" import xGovukSubNavigation %}

{% from "components/aside/macro.njk" import appAside %}
{% from "components/document-header/macro.njk" import appDocumentHeader %}
{% from "components/document-list/macro.njk" import appDocumentList %}
{% from "components/footer/macro.njk" import appFooter %}
{% from "components/header/macro.njk" import appHeader %}
{% from "components/prose-scope/macro.njk" import appProseScope %}

{% block headIcons %}
  <link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{ options.icons.shortcut | url }}" type="image/x-icon">
  <link rel="mask-icon" href="{{ options.icons.mask | url }}" color="{{ themeColor }}">
  <link rel="apple-touch-icon" href="{{ options.icons.touch | url }}">
{% endblock %}

{% block head %}
  <link rel="stylesheet" href="{{ '/assets/govuk.css' | url | absoluteUrl(options.url) }}">
  {% for stylesheet in options.stylesheets %}
  <link rel="stylesheet" href="{{ stylesheet | url | absoluteUrl(options.url) }}">
  {% endfor %}

  <meta property="og:url" content="{{ page.url | url | absoluteUrl(options.url) }}">
  <meta property="og:title" content="{{ title }}">
  {% if description %}<meta property="og:description" name="description" content="{{ description | markdown("inline") | striptags(true) }}">{% endif %}
  {% if opengraphImage %}<meta name="twitter:card" content="summary_large_image">{% endif %}
  {% if opengraphImage.src %}<meta property="og:image" content="{{ opengraphImage.src | url | absoluteUrl(options.url) }}">{% endif %}
  {% if opengraphImage.alt %}<meta property="og:image:alt" content="{{ opengraphImage.alt }}">{% endif %}
{% endblock %}

{% block pageTitle %}
  {{- title if title -}}
  {{- " (page " + pageNumber + " of " + pageCount + ")" if pageCount > 1 -}}
  {{- " - " + options.header.productName if options.header.productName -}}
  {{- " - " + options.header.organisationName -}}
{% endblock %}

{% block header %}
  {{ appHeader(options.header) }}
{% endblock %}

{% block footer %}
  {{ appFooter(options.footer) }}
{% endblock %}

{% block bodyEnd %}
  <script src="{{ '/assets/govuk.js' | url }}"></script>
  <script>document.documentElement.classList.remove('no-js')</script>
  {% block scripts %}{% endblock %}
{% endblock %}
