diff --git a/custom_theme/partials/header.html b/custom_theme/partials/header.html index 49fabe8..4d74da3 100644 --- a/custom_theme/partials/header.html +++ b/custom_theme/partials/header.html @@ -1,19 +1,61 @@ {#- This file was copied from the Material theme - You can find the file in .venv/lib/python3.10/site-packages/material/partials/header.html + You can find the file in https://raw.githubusercontent.com/squidfunk/mkdocs-material/master/src/partials/header.html -#} +<!-- + Copyright (c) 2016-2023 Martin Donath <martin.donath@squidfunk.com> + + 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. +--> + +<!-- Determine base classes --> {% set class = "md-header" %} {% if "navigation.tabs.sticky" in features %} - {% set class = class ~ " md-header--lifted" %} + {% set class = class ~ " md-header--shadow md-header--lifted" %} +{% elif "navigation.tabs" not in features %} + {% set class = class ~ " md-header--shadow" %} {% endif %} + +<!-- Header --> <header class="{{ class }}" data-md-component="header"> - <nav class="md-header__inner md-grid" aria-label="{{ lang.t('header.title') }}"> - <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"> + <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"> @@ -23,7 +65,7 @@ </div> <div class="md-header__topic" data-md-component="header-topic"> <span class="md-ellipsis"> - {% if page and page.meta and page.meta.title %} + {% if page.meta and page.meta.title %} {{ page.meta.title }} {% else %} {{ page.title }} @@ -32,53 +74,94 @@ </div> </div> </div> - {% if not config.theme.palette is mapping %} - <form class="md-header__option" data-md-component="palette"> - {% for option in config.theme.palette %} - {% set primary = option.primary | replace(" ", "-") | lower %} - {% set accent = option.accent | replace(" ", "-") | lower %} - <input class="md-option" data-md-color-media="{{ option.media }}" data-md-color-scheme="{{ option.scheme }}" data-md-color-primary="{{ primary }}" data-md-color-accent="{{ accent }}" {% if option.toggle %} aria-label="{{ option.toggle.name }}" {% else %} aria-hidden="true" {% endif %} type="radio" name="__palette" id="__palette_{{ loop.index }}"> - {% if option.toggle %} - <label class="md-header__button md-icon" title="{{ option.toggle.name }}" for="__palette_{{ loop.index0 or loop.length }}" hidden> - {% include ".icons/" ~ option.toggle.icon ~ ".svg" %} - </label> - {% endif %} - {% endfor %} - </form> + + <!-- Color palette --> + {% if config.theme.palette %} + {% if not config.theme.palette is mapping %} + <form class="md-header__option" data-md-component="palette"> + {% 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.index }}" + /> + {% if option.toggle %} + <label + class="md-header__button md-icon" + title="{{ option.toggle.name }}" + for="__palette_{{ loop.index0 or loop.length }}" + hidden + > + {% include ".icons/" ~ option.toggle.icon ~ ".svg" %} + </label> + {% endif %} + {% endfor %} + </form> + {% endif %} {% endif %} + + <!-- Site language selector --> {% if config.extra.alternate %} <div class="md-header__option"> <div class="md-select"> {% set icon = config.theme.icon.alternate or "material/translate" %} - <button class="md-header__button md-icon" aria-label="{{ lang.t('select.language.title') }}"> + <button + class="md-header__button md-icon" + aria-label="{{ lang.t('select.language') }}" + > {% include ".icons/" ~ icon ~ ".svg" %} </button> <div class="md-select__inner"> <ul class="md-select__list"> {% for alt in config.extra.alternate %} <li class="md-select__item"> - <a href="{{ alt.link | url }}" hreflang="{{ alt.lang }}" class="md-select__link"> + <a + href="{{ alt.link | url }}" + hreflang="{{ alt.lang }}" + class="md-select__link" + > {{ alt.name }} </a> </li> - {% endfor %} + {% endfor %} </ul> </div> </div> </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 %} + + <!-- Repository information --> {% if config.repo_url %} <div class="md-header__source"> {% include "partials/source.html" %} </div> {% endif %} - {% if "search" in config["plugins"] %} - <label class="md-header__button md-icon" for="__search"> - {% include ".icons/material/magnify.svg" %} - </label> - {% include "partials/search.html" %} - {% endif %} </nav> + + <!-- Navigation tabs (sticky) --> {% if "navigation.tabs.sticky" in features %} {% if "navigation.tabs" in features %} {% include "partials/tabs.html" %}