mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2025-02-12 08:33:03 +01:00
Moved header options to partials (#5877)
* Improved warning in social plugin about site_url * Documentation * Documentation * Extract header options into partials --------- Co-authored-by: squidfunk <martin.donath@squidfunk.com>
This commit is contained in:
parent
0de17c6197
commit
a6a37ab9d0
@ -100,6 +100,7 @@ assets may also be put in the `overrides` directory:
|
|||||||
│ │ └─ analytics.html # Analytics setup
|
│ │ └─ analytics.html # Analytics setup
|
||||||
│ ├─ languages/ # Translation languages
|
│ ├─ languages/ # Translation languages
|
||||||
│ ├─ actions.html # Actions
|
│ ├─ actions.html # Actions
|
||||||
|
│ ├─ alternate.html # Translation language selector
|
||||||
│ ├─ comments.html # Comment system (empty by default)
|
│ ├─ comments.html # Comment system (empty by default)
|
||||||
│ ├─ consent.html # Consent
|
│ ├─ consent.html # Consent
|
||||||
│ ├─ content.html # Page content
|
│ ├─ content.html # Page content
|
||||||
@ -113,6 +114,7 @@ assets may also be put in the `overrides` directory:
|
|||||||
│ ├─ nav.html # Main navigation
|
│ ├─ nav.html # Main navigation
|
||||||
│ ├─ nav-item.html # Main navigation item
|
│ ├─ nav-item.html # Main navigation item
|
||||||
│ ├─ pagination.html # Pagination (used for blog)
|
│ ├─ pagination.html # Pagination (used for blog)
|
||||||
|
│ ├─ palette.html # Color palette toggle
|
||||||
│ ├─ post.html # Blog post excerpt
|
│ ├─ post.html # Blog post excerpt
|
||||||
│ ├─ search.html # Search interface
|
│ ├─ search.html # Search interface
|
||||||
│ ├─ social.html # Social links
|
│ ├─ social.html # Social links
|
||||||
|
22
material/partials/alternate.html
Normal file
22
material/partials/alternate.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{#-
|
||||||
|
This file was automatically generated - do not edit
|
||||||
|
-#}
|
||||||
|
<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') }}">
|
||||||
|
{% 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">
|
||||||
|
{{ alt.name }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -36,41 +36,11 @@
|
|||||||
</div>
|
</div>
|
||||||
{% if config.theme.palette %}
|
{% if config.theme.palette %}
|
||||||
{% if not config.theme.palette is mapping %}
|
{% if not config.theme.palette is mapping %}
|
||||||
<form class="md-header__option" data-md-component="palette">
|
{% include "partials/palette.html" %}
|
||||||
{% 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 %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if config.extra.alternate %}
|
{% if config.extra.alternate %}
|
||||||
<div class="md-header__option">
|
{% include "partials/alternate.html" %}
|
||||||
<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') }}">
|
|
||||||
{% 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">
|
|
||||||
{{ alt.name }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if "material/search" in config.plugins %}
|
{% if "material/search" in config.plugins %}
|
||||||
<label class="md-header__button md-icon" for="__search">
|
<label class="md-header__button md-icon" for="__search">
|
||||||
|
16
material/partials/palette.html
Normal file
16
material/partials/palette.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{#-
|
||||||
|
This file was automatically generated - do not edit
|
||||||
|
-#}
|
||||||
|
<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>
|
48
src/partials/alternate.html
Normal file
48
src/partials/alternate.html
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<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') }}"
|
||||||
|
>
|
||||||
|
{% 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"
|
||||||
|
>
|
||||||
|
{{ alt.name }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -75,69 +75,13 @@
|
|||||||
<!-- Color palette -->
|
<!-- Color palette -->
|
||||||
{% if config.theme.palette %}
|
{% if config.theme.palette %}
|
||||||
{% if not config.theme.palette is mapping %}
|
{% if not config.theme.palette is mapping %}
|
||||||
<form class="md-header__option" data-md-component="palette">
|
{% include "partials/palette.html" %}
|
||||||
{% 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 %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<!-- Site language selector -->
|
<!-- Site language selector -->
|
||||||
{% if config.extra.alternate %}
|
{% if config.extra.alternate %}
|
||||||
<div class="md-header__option">
|
{% include "partials/alternate.html" %}
|
||||||
<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') }}"
|
|
||||||
>
|
|
||||||
{% 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"
|
|
||||||
>
|
|
||||||
{{ alt.name }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<!-- Button to open search modal -->
|
<!-- Button to open search modal -->
|
||||||
|
54
src/partials/palette.html
Normal file
54
src/partials/palette.html
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<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>
|
Loading…
x
Reference in New Issue
Block a user