2023-03-21 22:56:27 +01:00
|
|
|
<!-- {#
|
|
|
|
Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com>
|
|
|
|
Copyright (c) 2023 Jonah Aragon <jonah@triplebit.net>
|
|
|
|
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
of this software and associated documentation files (the "Software"), to
|
|
|
|
deal in the Software without restriction, including without limitation the
|
|
|
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
|
|
sell copies of the Software, and to permit persons to whom the Software is
|
|
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
|
|
|
|
The above copyright notice and this permission notice shall be included in
|
|
|
|
all copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
|
|
IN THE SOFTWARE.
|
|
|
|
#} -->
|
2023-10-04 22:02:24 +02:00
|
|
|
<!-- Determine base classes -->
|
2022-05-31 06:03:09 +02:00
|
|
|
{% set class = "md-header" %}
|
|
|
|
{% if "navigation.tabs.sticky" in features %}
|
2023-03-01 15:57:15 +01:00
|
|
|
{% set class = class ~ " md-header--shadow md-header--lifted" %}
|
|
|
|
{% elif "navigation.tabs" not in features %}
|
|
|
|
{% set class = class ~ " md-header--shadow" %}
|
2022-05-31 06:03:09 +02:00
|
|
|
{% endif %}
|
2023-10-04 22:02:24 +02:00
|
|
|
|
|
|
|
<!-- Header -->
|
2022-05-31 06:03:09 +02:00
|
|
|
<header class="{{ class }}" data-md-component="header">
|
2023-10-04 22:02:24 +02:00
|
|
|
<nav
|
|
|
|
class="md-header__inner md-grid"
|
|
|
|
aria-label="{{ lang.t('header') }}"
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Link to home -->
|
|
|
|
<a
|
|
|
|
href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}"
|
|
|
|
title="{{ config.site_name | e }}"
|
|
|
|
class="md-header__button md-logo"
|
|
|
|
aria-label="{{ config.site_name }}"
|
|
|
|
data-md-component="logo"
|
|
|
|
>
|
|
|
|
{% include "partials/logo.html" %}
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<!-- Button to open drawer -->
|
|
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
{% include ".icons/material/menu" ~ ".svg" %}
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<!-- Header title -->
|
|
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
|
|
<div class="md-header__ellipsis">
|
|
|
|
<div class="md-header__topic">
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
{{ config.site_name }}
|
|
|
|
</span>
|
2022-05-31 06:03:09 +02:00
|
|
|
</div>
|
2023-10-04 22:02:24 +02:00
|
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
{% if page.meta and page.meta.title %}
|
|
|
|
{{ page.meta.title }}
|
|
|
|
{% else %}
|
|
|
|
{{ page.title }}
|
|
|
|
{% endif %}
|
|
|
|
</span>
|
2022-05-31 06:03:09 +02:00
|
|
|
</div>
|
2023-10-04 22:02:24 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Repository information -->
|
|
|
|
{% if config.repo_url %}
|
|
|
|
<div class="md-header__source">
|
|
|
|
{% include "partials/source.html" %}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- Button to open search modal -->
|
|
|
|
{% if "material/search" in config.plugins %}
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
{% include ".icons/material/magnify.svg" %}
|
|
|
|
</label>
|
|
|
|
|
|
|
|
<!-- Search interface -->
|
|
|
|
{% include "partials/search.html" %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- Site language selector -->
|
|
|
|
{% if config.extra.alternate %}
|
|
|
|
<div class="md-header__option">
|
|
|
|
<div class="md-select">
|
|
|
|
{% for alt in config.extra.alternate %}
|
|
|
|
{% if alt.lang == config.theme.language %}
|
|
|
|
<button class="md-header__button md-icon" aria-label="{{ lang.t('select.language') }}">
|
|
|
|
<img alt="{{ config.theme.language }}" class="twemoji" src="{{ alt.icon }}">
|
|
|
|
</button>
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
<div class="md-select__inner">
|
|
|
|
<ul class="md-select__list">
|
|
|
|
{% for alt in config.extra.alternate %}
|
|
|
|
<li class="md-select__item">
|
|
|
|
<a
|
2023-10-11 05:52:54 +02:00
|
|
|
href="{{ "/" ~ alt.lang ~ "/" ~ page.url }}"
|
2023-10-04 22:02:24 +02:00
|
|
|
hreflang="{{ alt.lang }}"
|
|
|
|
class="md-select__link"
|
|
|
|
>
|
|
|
|
<img alt="{{ alt.lang }}" class="twemoji" src="{{ alt.icon }}">
|
|
|
|
{{ alt.name }}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
|
|
|
</ul>
|
|
|
|
</div>
|
2022-05-31 06:03:09 +02:00
|
|
|
</div>
|
2023-10-04 22:02:24 +02:00
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- Color palette -->
|
|
|
|
{% if config.theme.palette %}
|
|
|
|
{% if not config.theme.palette is mapping %}
|
2023-02-28 05:17:50 +01:00
|
|
|
<form class="md-header__option" data-md-component="palette">
|
2023-10-04 22:02:24 +02:00
|
|
|
{% for option in config.theme.palette %}
|
|
|
|
{% set scheme = option.scheme | d("default", true) %}
|
|
|
|
{% set primary = option.primary | d("indigo", true) %}
|
|
|
|
{% set accent = option.accent | d("indigo", true) %}
|
|
|
|
<input
|
|
|
|
class="md-option"
|
|
|
|
data-md-color-media="{{ option.media }}"
|
|
|
|
data-md-color-scheme="{{ scheme | replace(' ', '-') }}"
|
|
|
|
data-md-color-primary="{{ primary | replace(' ', '-') }}"
|
|
|
|
data-md-color-accent="{{ accent | replace(' ', '-') }}"
|
|
|
|
{% if option.toggle %}
|
|
|
|
aria-label="{{ option.toggle.name }}"
|
|
|
|
{% else %}
|
|
|
|
aria-hidden="true"
|
|
|
|
{% endif %}
|
|
|
|
type="radio"
|
|
|
|
name="__palette"
|
|
|
|
id="__palette_{{ loop.index0 }}"
|
|
|
|
/>
|
2023-02-28 05:17:50 +01:00
|
|
|
{% if option.toggle %}
|
2023-10-04 22:02:24 +02:00
|
|
|
<label
|
|
|
|
class="md-header__button md-icon"
|
|
|
|
title="{{ option.toggle.name }}"
|
|
|
|
for="__palette_{{ loop.index % loop.length }}"
|
|
|
|
hidden
|
|
|
|
>
|
2023-02-28 05:17:50 +01:00
|
|
|
{% include ".icons/" ~ option.toggle.icon ~ ".svg" %}
|
2023-10-04 22:02:24 +02:00
|
|
|
</label>
|
2023-02-28 05:17:50 +01:00
|
|
|
{% endif %}
|
2023-10-04 22:02:24 +02:00
|
|
|
{% endfor %}
|
2023-02-28 05:17:50 +01:00
|
|
|
</form>
|
2023-10-04 22:02:24 +02:00
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- User preference: color palette -->
|
|
|
|
{% if not config.theme.palette is mapping %}
|
|
|
|
{% include "partials/javascripts/palette.html" %}
|
|
|
|
{% endif %}
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<!-- Navigation tabs (sticky) -->
|
|
|
|
{% if "navigation.tabs.sticky" in features %}
|
|
|
|
{% if "navigation.tabs" in features %}
|
|
|
|
{% include "partials/tabs.html" %}
|
2022-05-31 06:03:09 +02:00
|
|
|
{% endif %}
|
2023-10-04 22:02:24 +02:00
|
|
|
{% endif %}
|
2022-05-31 06:03:09 +02:00
|
|
|
</header>
|