<!doctype html> <html lang=β€œen”>

<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="{{ "/assets/favicon-192x192.png" | relative_url }}"
  rel="shortcut icon"
  sizes="192x192"
  type="image/x-icon">

<link href="{{ "/assets/favicon.png" | relative_url }}"
  rel="shortcut icon"
  sizes="32x32"
  type="image/x-icon">

<link href="{{ "/assets/favicon-192x192.png" | relative_url }}"
  rel="apple-touch-icon">

<link id="themeCSS" rel="stylesheet" href="{{ "assets/css/style.css" | relative_url }}">

{% unless site.no_auto_fontawesome %}
  <script
    defer
    src="https://use.fontawesome.com/releases/{{ site.fontawesome_cdn.version }}/js/all.js"
    integrity="{{ site.fontawesome_cdn.integrity }}"
    crossorigin="anonymous"></script>
{% endunless %}

{% if site.algolia_search %}
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css">
{% endif %}

{% if page.extra_stylesheets %}
  {% for ss in page.extra_stylesheets %}
    <link rel="stylesheet" href="{{ ss.href }}" integrity="{{ ss.integrity }}" crossorigin="{{ ss.crossorigin }}">
  {% endfor %}
{% endif %}

{% if page.extra_scripts %}
  {% for sc in page.extra_scripts %}
    <script src="{{ sc.src }}" integrity="{{ sc.integrity }}" crossorigin="{{ sc.crossorigin }}"></script>
  {% endfor %}
{% endif %}

{% seo %}

{% include head.html %}

</head>

{% assign num_projects = site.projects | size %} <body class=β€œ

  {{ page.html-class }} {{ layout.html-class }}
  {% if num_projects > 0 %}
    site--hub
  {% else %}
    site--project
    {% if site.one_software %}site--project--one-software{% endif %}
  {% endif %}
  {% if page.layout %}layout--{{ page.layout }}{% endif %}">
<div class="underlay header">
  <header>
    <h1 class="site-logo"><a href="/">{% include logo.html %}</a></h1>
    <nav class="top-menu">
      {% include nav-links.html %}
    </nav>

    {% include social-links.html %}

    <button class="hamburger" aria-expanded="false" id="hamburgerButton"
        aria-label="top site menu toggle">
      <i class="fa fa-bars"></i>
    </button>

    <div class="hamburger-menu" id="hamburgerMenu" aria-hidden="true">
      <div class="site-logo-container">
        <h1 class="site-logo"><a href="/">{% include logo.html %}</a></h1>
      </div>

      {% include social-links.html %}
    </div>
  </header>

  {% if page.hero_include %}
    <div class="hero">{% include {{ page.hero_include }} %}</div>
  {% endif %}
</div>

<main>
  {{ content }}
</main>

<div class="underlay footer">
  <footer>
    {% if site.num_all_specs > 0 or site.num_all_software > 0 %}
    <nav class="links" aria-label="site links">
      {% if site.num_all_software > 0 %}
        <a href="/software/">All {{ site.title }} software</a>
      {% endif %}
      {% if site.num_all_specs > 0 %}
        <a href="/specs/">All specifications</a>
      {% endif %}
    </nav>
    {% endif %}

    {% if site.is_hub %}
      <div class="site-logo" aria-label="logo">{% include logo.html %}</div>
    {% else %}
      <div class="parent-hub-plug">
        <span class="label">{{ site.title }} is</span>
        <a class="logo" role="presentation" href="{{ site.parent_hub.home_url }}"
          aria-label="parent project logo">
          {% include parent-hub/assets/symbol.svg %}&nbsp;<span class="title">{% include parent-hub/title.html %}</span>
        </a>
      </div>
    {% endif %}

    <div class="legal">{% include legal.html %}</div>

    {% include social-links.html %}
  </footer>
</div>

{% if site.algolia_search %}
  <script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>

  {% comment %}
  This would break a strict CSP, but Jekyll refuses to Liquid-process JS files
  without also adding HTML wrapping. Eek.
  TODO: Move this to data attributes on <body>.
  {% endcomment %}
  <script>
    window.initAlgolia = function () {
      if (window.docsearch) {
        docsearch({
          apiKey: '{{ site.algolia_search.api_key }}',
          indexName: '{{ site.algolia_search.index_name }}',
          inputSelector: 'input[type=search]',
          debug: false,
        });
      }
    };
  </script>
{% endif %}

<script src="{{ "assets/js/clipboard.min.js" | relative_url }}"></script>
<script src="{{ "assets/listing-widget.js" | relative_url }}"></script>
<script src="{{ "assets/js/headroom.min.js" | relative_url }}"></script>
<script src="{{ "assets/js/opf.js" | relative_url }}"></script>

{% include scripts.html %}

</body>