Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -13,6 +13,11 @@
{% elif config.site_description %}
<meta name="description" content="{{ config.site_description }}">
{% endif %}
{% if page and page.meta and page.meta.keywords %}
<meta name="keywords" content="{{ page.meta.keywords }}">
{% elif config.site_keywords %}
<meta name="keywords" content="{{ config.site_keywords }}">
{% endif %}
{% if page.canonical_url %}
<link rel="canonical" href="{{ page.canonical_url }}">
{% endif %}
@@ -22,7 +27,7 @@
<meta name="author" content="{{ config.site_author }}">
{% endif %}
<link rel="shortcut icon" href="{{ config.theme.favicon | url }}">
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-6.0.2">
<meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-6.1.3">
{% endblock %}
{% block htmltitle %}
{% if page and page.meta and page.meta.title %}
@@ -34,10 +39,10 @@
{% endif %}
{% endblock %}
{% block styles %}
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.38780c08.min.css' | url }}">
<link rel="stylesheet" href="{{ 'assets/stylesheets/main.2cb7adb3.min.css' | url }}">
{% if config.theme.palette %}
{% set palette = config.theme.palette %}
<link rel="stylesheet" href="{{ 'assets/stylesheets/palette.3f72e892.min.css' | url }}">
<link rel="stylesheet" href="{{ 'assets/stylesheets/palette.f0267088.min.css' | url }}">
{% if palette.primary %}
{% import "partials/palette.html" as map %}
{% set primary = map.primary(
@@ -172,15 +177,16 @@ <h1>{{ page.title | default(config.site_name, true)}}</h1>
{% endblock %}
</div>
{% block scripts %}
<script src="{{ 'assets/javascripts/vendor.6c4496e8.min.js' | url }}"></script>
<script src="{{ 'assets/javascripts/bundle.97185c3a.min.js' | url }}"></script>
<script src="{{ 'assets/javascripts/vendor.fd16492e.min.js' | url }}"></script>
<script src="{{ 'assets/javascripts/bundle.00f9b4e0.min.js' | url }}"></script>
{%- set translations = {} -%}
{%- for key in [
"clipboard.copy",
"clipboard.copied",
"search.config.lang",
"search.config.pipeline",
"search.config.separator",
"search.placeholder",
"search.result.placeholder",
"search.result.none",
"search.result.one",
@@ -15,10 +15,10 @@
<h1>Technical documentation that just works</h1>
<p>{{ config.site_description }}. Set up in 5 minutes.</p>
<a href="{{ page.next_page.url | url }}" title="{{ page.next_page.title | e }}" class="md-button md-button--primary">
Get started
Quick start
</a>
<a href="{{ config.repo_url }}" title="{{ lang.t('source.link.title') }}" class="md-button">
Go to GitHub
<a href="{{ 'insiders/' | url }}" title="Material for MkDocs Insiders" class="md-button">
Get Insiders
</a>
</div>
</div>
@@ -22,7 +22,7 @@
<meta name="twitter:title" content="{{ title }}">
<meta name="twitter:description" content="{{ config.site_description }}">
<meta name="twitter:image" content="{{ image }}">
<link rel="stylesheet" href="{{ 'assets/stylesheets/overrides.2a4bbe42.min.css' | url }}">
<link rel="stylesheet" href="{{ 'assets/stylesheets/overrides.88a3f51b.min.css' | url }}">
{% endblock %}
{% block announce %}
<a href="https://twitter.com/squidfunk">
@@ -1,9 +1,13 @@
{#-
This file was automatically generated - do not edit
-#}
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %}
{% set site_url = site_url ~ "/index.html" %}
{% endif %}
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid" aria-label="{{ lang.t('header.title') }}">
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-header-nav__button md-logo" aria-label="{{ config.site_name }}">
<a href="{{ site_url }}" title="{{ config.site_name | e }}" class="md-header-nav__button md-logo" aria-label="{{ config.site_name }}">
{% include "partials/logo.html" %}
</a>
<label class="md-header-nav__button md-icon" for="__drawer">
@@ -14,6 +14,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\,\。]+",
"search.placeholder": "搜尋",
"search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "鍵入以開始檢索",
"search.result.none": "沒有找到符合條件的結果",
"search.result.one": "找到 1 个符合條件的結果",
@@ -14,6 +14,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\s\- 、。,.?;]+",
"search.placeholder": "搜尋",
"search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "打字進行搜尋",
"search.result.none": "沒有符合的項目",
"search.result.one": "找到 1 個符合的項目",
@@ -14,6 +14,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\,\。]+",
"search.placeholder": "搜索",
"search.result.initializer": "正在初始化搜索引擎",
"search.result.placeholder": "键入以开始搜索",
"search.result.none": "没有找到符合条件的结果",
"search.result.one": "找到 1 个符合条件的结果",
@@ -1,9 +1,13 @@
{#-
This file was automatically generated - do not edit
-#}
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %}
{% set site_url = site_url ~ "/index.html" %}
{% endif %}
<nav class="md-nav md-nav--primary" aria-label="{{ lang.t('nav.title') }}" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-nav__button md-logo" aria-label="{{ config.site_name }}">
<a href="{{ site_url }}" title="{{ config.site_name | e }}" class="md-nav__button md-logo" aria-label="{{ config.site_name }}">
{% include "partials/logo.html" %}
</a>
{{ config.site_name }}
@@ -75,11 +75,12 @@ plugins:
extensions/metadata.md: reference/meta-tags.md
extensions/permalinks.md: setup/setting-up-navigation.md #permalink
extensions/pymdown.md: reference/admonitions.md
plugins/search.md: setup/setting-up-site-search.md
plugins/revision-date.md: setup/adding-a-git-repository.md #revision-date
plugins/search.md: setup/setting-up-site-search.md
releases/4.md: upgrading.md #upgrading-from-4x-to-5x
releases/5.md: upgrading.md #upgrading-from-3x-to-4x
releases/changelog.md: changelog.md
setup/adding-social-links.md: setup/setting-up-the-footer.md
sponsorship.md: insiders.md
- minify:
minify_html: true
@@ -161,8 +162,9 @@ nav:
- Setting up navigation: setup/setting-up-navigation.md
- Setting up site search: setup/setting-up-site-search.md
- Setting up site analytics: setup/setting-up-site-analytics.md
- Setting up versioning: setup/setting-up-versioning.md
- Setting up the header: setup/setting-up-the-header.md
- Adding social links: setup/adding-social-links.md
- Setting up the footer: setup/setting-up-the-footer.md
- Adding a git repository: setup/adding-a-git-repository.md
- Adding a comment system: setup/adding-a-comment-system.md
#- Adding a landing page: setup/adding-a-landing-page.md

Large diffs are not rendered by default.

@@ -1,6 +1,6 @@
{
"name": "mkdocs-material",
"version": "6.0.2",
"version": "6.1.3",
"description": "A Material Design theme for MkDocs",
"keywords": [
"mkdocs",
@@ -34,64 +34,65 @@
"dependencies": {
"clipboard": "^2.0.6",
"escape-html": "^1.0.3",
"focus-visible": "^5.1.0",
"focus-visible": "^5.2.0",
"lunr": "^2.3.9",
"lunr-languages": "^1.4.0",
"resize-observer-polyfill": "^1.5.1",
"rxjs": "^7.0.0-beta.7"
"rxjs": "^7.0.0-beta.8"
},
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.14.0",
"@mdi/svg": "^5.6.55",
"@fortawesome/fontawesome-free": "^5.15.1",
"@mdi/svg": "^5.8.55",
"@primer/octicons": "^11.0.0",
"@types/clipboard": "^2.0.1",
"@types/copy-webpack-plugin": "^6.0.0",
"@types/escape-html": "1.0.0",
"@types/event-hooks-webpack-plugin": "^2.0.0",
"@types/html-minifier": "^4.0.0",
"@types/lunr": "^2.3.3",
"@types/mini-css-extract-plugin": "^0.9.1",
"@types/node": "^14.11.2",
"@types/ramda": "^0.27.19",
"@types/resize-observer-browser": "^0.1.3",
"@types/webpack": "^4.41.22",
"@types/mini-css-extract-plugin": "^1.2.0",
"@types/node": "^14.14.6",
"@types/ramda": "^0.27.32",
"@types/resize-observer-browser": "^0.1.4",
"@types/webpack": "^4.41.24",
"@types/webpack-assets-manifest": "^3.0.1",
"autoprefixer": "9.8.6",
"copy-webpack-plugin": "^6.1.1",
"css-loader": "^4.3.0",
"autoprefixer": "10.0.1",
"copy-webpack-plugin": "^6.2.1",
"css-loader": "^5.0.0",
"event-hooks-webpack-plugin": "^2.1.7",
"expose-loader": "^1.0.0",
"expose-loader": "^1.0.1",
"github-types": "^1.0.0",
"gitlab": "^14.2.2",
"html-minifier": "^4.0.0",
"ignore-emit-webpack-plugin": "^2.0.3",
"ignore-emit-webpack-plugin": "2.0.3",
"imagemin-webpack-plugin": "^2.4.2",
"material-design-color": "^2.3.2",
"material-shadows": "^3.0.1",
"mini-css-extract-plugin": "^0.11.2",
"postcss-inline-svg": "^4.1.0",
"postcss-loader": "^4.0.2",
"mini-css-extract-plugin": "^1.2.1",
"postcss": "^8.1.4",
"postcss-inline-svg": "^5.0.0",
"postcss-loader": "^4.0.4",
"postcss-svgo": "^4.0.2",
"preact": "^10.5.2",
"preact": "^10.5.5",
"ramda": "^0.27.1",
"rimraf": "^3.0.2",
"sass": "^1.26.11",
"sass-loader": "^10.0.2",
"sass": "^1.28.0",
"sass-loader": "^10.0.4",
"stylelint": "^13.7.2",
"stylelint-config-rational-order": "^0.1.2",
"stylelint-config-standard": "^20.0.0",
"stylelint-order": "^4.1.0",
"stylelint-scss": "^3.18.0",
"ts-loader": "^8.0.4",
"ts-loader": "^8.0.7",
"ts-node": "^9.0.0",
"tsconfig-paths-webpack-plugin": "^3.3.0",
"tslib": "^2.0.1",
"tslib": "^2.0.3",
"tslint": "^6.1.3",
"tslint-sonarts": "^1.9.0",
"typescript": "^3.9.7",
"typescript": "^4.0.5",
"webpack": "^4.44.2",
"webpack-assets-manifest": "^3.1.1",
"webpack-cli": "^3.3.12"
"webpack-cli": "^4.1.0"
},
"engines": {
"node": ">= 10"
@@ -35,7 +35,10 @@ import {
SearchTransformFn
} from "integrations"

import { watchSearchQuery } from "../react"
import {
applySearchQuery,
watchSearchQuery
} from "../react"

/* ----------------------------------------------------------------------------
* Types
@@ -102,6 +105,9 @@ export function mountSearchQuery(

/* Return search query */
return query$
.pipe(
applySearchQuery(el)
)
})
)
}
@@ -22,3 +22,4 @@

export * from "./_"
export * from "./react"
export * from "./set"
@@ -20,18 +20,31 @@
* IN THE SOFTWARE.
*/

import { Observable, combineLatest, fromEvent, merge } from "rxjs"
import {
MonoTypeOperatorFunction,
Observable,
combineLatest,
fromEvent,
merge,
pipe
} from "rxjs"
import {
delay,
distinctUntilChanged,
finalize,
map,
startWith
startWith,
tap
} from "rxjs/operators"

import { watchElementFocus } from "browser"
import { SearchTransformFn, defaultTransform } from "integrations"

import { SearchQuery } from "../_"
import {
resetSearchQueryPlaceholder,
setSearchQueryPlaceholder
} from "../set"

/* ----------------------------------------------------------------------------
* Helper types
@@ -84,3 +97,33 @@ export function watchSearchQuery(
map(([value, focus]) => ({ value, focus }))
)
}

/* ------------------------------------------------------------------------- */

/**
* Apply search query
*
* @param el - Search query element
*
* @return Operator function
*/
export function applySearchQuery(
el: HTMLInputElement
): MonoTypeOperatorFunction<SearchQuery> {
return pipe(

/* Hide placeholder when search is focused */
tap(({ focus }) => {
if (focus) {
setSearchQueryPlaceholder(el, "")
} else {
resetSearchQueryPlaceholder(el)
}
}),

/* Reset on complete or error */
finalize(() => {
resetSearchQueryPlaceholder(el)
})
)
}
@@ -0,0 +1,50 @@
/*
* Copyright (c) 2016-2020 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.
*/

import { translate } from "utilities"

/* ----------------------------------------------------------------------------
* Functions
* ------------------------------------------------------------------------- */

/**
* Set search query placeholder
*
* @param el - Search query element
* @param value - Placeholder
*/
export function setSearchQueryPlaceholder(
el: HTMLInputElement, value: string
): void {
el.placeholder = value
}

/**
* Reset search query placeholder
*
* @param el - Search query element
*/
export function resetSearchQueryPlaceholder(
el: HTMLInputElement
): void {
el.placeholder = translate("search.placeholder")
}
@@ -32,8 +32,7 @@ import {
sample,
share,
skip,
switchMap,
withLatestFrom
switchMap
} from "rxjs/operators"

import {
@@ -221,11 +220,11 @@ export function setupInstantLoading(
})

/* Replace document metadata */
instant$
document$
.pipe(
withLatestFrom(document$)
skip(1) // Skip initial
)
.subscribe(([, { title, head }]) => {
.subscribe(({ title, head }) => {
document.title = title

/* Replace meta tags */
@@ -35,6 +35,7 @@ type TranslateKey =
| "search.config.lang" /* Search language */
| "search.config.pipeline" /* Search pipeline */
| "search.config.separator" /* Search separator */
| "search.placeholder" /* Search */
| "search.result.placeholder" /* Type to start searching */
| "search.result.none" /* No matching documents */
| "search.result.one" /* 1 matching document */
@@ -39,7 +39,7 @@

// Primary color shades
--md-primary-fg-color: hsla(#{hex2hsl($clr-indigo-500)}, 1);
--md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-300)}, 1);
--md-primary-fg-color--light: hsla(#{hex2hsl($clr-indigo-400)}, 1);
--md-primary-fg-color--dark: hsla(#{hex2hsl($clr-indigo-700)}, 1);
--md-primary-bg-color: hsla(0, 0%, 100%, 1);
--md-primary-bg-color--light: hsla(0, 0%, 100%, 0.7);
@@ -26,7 +26,8 @@
// Rules
// ----------------------------------------------------------------------------

// Enforce correct box model and prevent adjustments of font size after orientation changes in IE and iOS
// Enforce correct box model and prevent adjustments of font size after
// orientation changes in IE and iOS
html {
box-sizing: border-box;
text-size-adjust: none;
@@ -182,6 +182,12 @@ kbd {
background-color: var(--md-code-bg-color);
border-radius: px2rem(2px);
box-decoration-break: clone;

// Disable focus indicator for pointer devices
&:not(.focus-visible) {
outline: none;
-webkit-tap-highlight-color: transparent;
}
}

// Disable containing block inside headlines
@@ -572,7 +578,8 @@ kbd {
margin-left: 0.5em;
vertical-align: sub;
mask-repeat: no-repeat;
content: " ";
mask-size: contain;
content: "";
}

// Sort ascending
@@ -118,9 +118,10 @@ $admonitions: (
.admonition-title {
position: relative;
margin: 0 px2rem(-12px) 0 px2rem(-16px);
padding: px2rem(8px) px2rem(12px) px2rem(8px) px2rem(44px);
padding: px2rem(8px) px2rem(12px) px2rem(8px) px2rem(40px);
font-weight: 700;
background-color: transparentize($clr-blue-a200, 0.9);
border-left: px2rem(4px) solid $clr-blue-a200;

// Adjust for right-to-left languages
[dir="rtl"] & {
@@ -136,12 +137,13 @@ $admonitions: (
// Admonition icon
&::before {
position: absolute;
left: px2rem(16px);
left: px2rem(12px);
width: px2rem(20px);
height: px2rem(20px);
background-color: $clr-blue-a200;
mask-image: var(--md-admonition-icon--note);
mask-repeat: no-repeat;
mask-size: contain;
content: "";

// Adjust for right-to-left languages
@@ -184,12 +186,14 @@ $admonitions: (
// Admonition title
.md-typeset .#{$name} > .admonition-title {
background-color: transparentize($tint, 0.9);
border-color: $tint;

// Admonition icon
&::before {
background-color: $tint;
mask-image: var(--md-admonition-icon--#{$name});
mask-repeat: no-repeat;
mask-size: contain;
}
}

@@ -183,7 +183,7 @@
// Disable user selection, so code can be easily copied without
// accidentally also copying the line numbers
.linenos {
padding: px2rem(10.5px) px2em(16px, 13.6px);
padding: px2em(10.5px, 13.6px) px2em(16px, 13.6px);
padding-right: 0;
font-size: px2em(13.6px);
background-color: var(--md-code-bg-color);
@@ -142,6 +142,7 @@
background-color: currentColor;
mask-image: var(--md-footnotes-icon);
mask-repeat: no-repeat;
mask-size: contain;
content: "";

// Adjust for right-to-left languages
@@ -71,7 +71,7 @@

display: block;
min-height: px2rem(20px);
padding: px2rem(8px) px2rem(36px) px2rem(8px) px2rem(44px);
padding: px2rem(8px) px2rem(36px) px2rem(8px) px2rem(40px);
border-top-left-radius: px2rem(2px);
border-top-right-radius: px2rem(2px);
cursor: pointer;
@@ -102,6 +102,7 @@
background-color: currentColor;
mask-image: var(--md-details-icon);
mask-repeat: no-repeat;
mask-size: contain;
transform: rotate(0deg);
transition: transform 250ms;
content: "";
@@ -34,6 +34,12 @@
width: 100%;
box-shadow: 0 px2rem(-1px) var(--md-default-fg-color--lightest);

// Show all tabs when printing
@media print {
display: block;
order: initial;
}

// Mirror old superfences behavior, if there's only a single code block.
> pre:only-child,
> .codehilite:only-child pre,
@@ -72,6 +72,7 @@
background-color: var(--md-default-fg-color--lightest);
mask-image: var(--md-tasklist-icon);
mask-repeat: no-repeat;
mask-size: contain;
content: "";

// Adjust for right-to-left languages
@@ -64,6 +64,7 @@
background-color: currentColor;
mask-image: var(--md-clipboard-icon);
mask-repeat: no-repeat;
mask-size: contain;
content: "";
}

@@ -213,6 +213,7 @@
background-color: currentColor;
mask-image: var(--md-nav-icon--prev);
mask-repeat: no-repeat;
mask-size: contain;
content: "";
}

@@ -330,6 +331,7 @@
background-color: currentColor;
mask-image: var(--md-nav-icon--next);
mask-repeat: no-repeat;
mask-size: contain;
content: "";
}

@@ -558,6 +560,7 @@
background-color: currentColor;
mask-image: var(--md-nav-icon--next);
mask-repeat: no-repeat;
mask-size: contain;
content: "";
}

@@ -666,6 +666,7 @@ $md-toggle__search--checked:
background-color: currentColor;
mask-image: var(--md-search-result-icon);
mask-repeat: no-repeat;
mask-size: contain;
content: "";
}

@@ -721,8 +722,8 @@ $md-toggle__search--checked:

// Search term highlighting
mark {
text-decoration: underline;
background-color: transparent;
border-bottom: px2rem(1px) solid var(--md-accent-fg-color);
}
}

@@ -24,52 +24,64 @@
// Rules
// ----------------------------------------------------------------------------

// Slate theme, i.e. dark mode
[data-md-color-scheme="slate"] {
// Only use dark mode on screens
@media screen {

// Slate's hue in the range [0,360] - change this variable to alter the tone
// of the theme, e.g. to make it more redish or greenish. This is a slate-
// specific variable, but the same approach may be adapted to custom themes.
--md-hue: 232;
// Slate theme, i.e. dark mode
[data-md-color-scheme="slate"] {

// Default color shades
--md-default-fg-color: hsla(var(--md-hue), 75%, 95%, 1);
--md-default-fg-color--light: hsla(var(--md-hue), 75%, 90%, 0.62);
--md-default-fg-color--lighter: hsla(var(--md-hue), 75%, 90%, 0.32);
--md-default-fg-color--lightest: hsla(var(--md-hue), 75%, 90%, 0.12);
--md-default-bg-color: hsla(var(--md-hue), 15%, 21%, 1);
--md-default-bg-color--light: hsla(var(--md-hue), 15%, 21%, 0.54);
--md-default-bg-color--lighter: hsla(var(--md-hue), 15%, 21%, 0.26);
--md-default-bg-color--lightest: hsla(var(--md-hue), 15%, 21%, 0.07);
// Slate's hue in the range [0,360] - change this variable to alter the tone
// of the theme, e.g. to make it more redish or greenish. This is a slate-
// specific variable, but the same approach may be adapted to custom themes.
--md-hue: 232;

// Code color shades
--md-code-fg-color: hsla(var(--md-hue), 18%, 86%, 1);
--md-code-bg-color: hsla(var(--md-hue), 15%, 15%, 1);
// Default color shades
--md-default-fg-color: hsla(var(--md-hue), 75%, 95%, 1);
--md-default-fg-color--light: hsla(var(--md-hue), 75%, 90%, 0.62);
--md-default-fg-color--lighter: hsla(var(--md-hue), 75%, 90%, 0.32);
--md-default-fg-color--lightest: hsla(var(--md-hue), 75%, 90%, 0.12);
--md-default-bg-color: hsla(var(--md-hue), 15%, 21%, 1);
--md-default-bg-color--light: hsla(var(--md-hue), 15%, 21%, 0.54);
--md-default-bg-color--lighter: hsla(var(--md-hue), 15%, 21%, 0.26);
--md-default-bg-color--lightest: hsla(var(--md-hue), 15%, 21%, 0.07);

// Code highlighting color shades
--md-code-hl-color: hsla(#{hex2hsl($clr-blue-a200)}, 0.15);
--md-code-hl-number-color: hsla(6, 74%, 63%, 1);
--md-code-hl-special-color: hsla(340, 83%, 66%, 1);
--md-code-hl-function-color: hsla(291, 57%, 65%, 1);
--md-code-hl-constant-color: hsla(250, 62%, 70%, 1);
--md-code-hl-keyword-color: hsla(219, 66%, 64%, 1);
--md-code-hl-string-color: hsla(150, 58%, 44%, 1);
// Code color shades
--md-code-fg-color: hsla(var(--md-hue), 18%, 86%, 1);
--md-code-bg-color: hsla(var(--md-hue), 15%, 15%, 1);

// Typeset color shades
--md-typeset-a-color: var(--md-primary-fg-color--light);
// Code highlighting color shades
--md-code-hl-color: hsla(#{hex2hsl($clr-blue-a200)}, 0.15);
--md-code-hl-number-color: hsla(6, 74%, 63%, 1);
--md-code-hl-special-color: hsla(340, 83%, 66%, 1);
--md-code-hl-function-color: hsla(291, 57%, 65%, 1);
--md-code-hl-constant-color: hsla(250, 62%, 70%, 1);
--md-code-hl-keyword-color: hsla(219, 66%, 64%, 1);
--md-code-hl-string-color: hsla(150, 58%, 44%, 1);

// Typeset `mark` color shades
--md-typeset-mark-color: hsla(#{hex2hsl($clr-blue-a200)}, 0.3);
// Typeset color shades
--md-typeset-a-color: var(--md-primary-fg-color--light);

// Typeset `kbd` color shades
--md-typeset-kbd-color: hsla(var(--md-hue), 15%, 94%, 0.12);
--md-typeset-kbd-accent-color: hsla(var(--md-hue), 15%, 94%, 0.2);
--md-typeset-kbd-border-color: hsla(var(--md-hue), 15%, 14%, 1);
// Typeset `mark` color shades
--md-typeset-mark-color: hsla(#{hex2hsl($clr-blue-a200)}, 0.3);

// Admonition color shades
--md-admonition-bg-color: hsla(var(--md-hue), 0%, 100%, 0.025);
// Typeset `kbd` color shades
--md-typeset-kbd-color: hsla(var(--md-hue), 15%, 94%, 0.12);
--md-typeset-kbd-accent-color: hsla(var(--md-hue), 15%, 94%, 0.2);
--md-typeset-kbd-border-color: hsla(var(--md-hue), 15%, 14%, 1);

// Footer color shades
--md-footer-bg-color: hsla(var(--md-hue), 15%, 12%, 0.87);
--md-footer-bg-color--dark: hsla(var(--md-hue), 15%, 10%, 1);
// Admonition color shades
--md-admonition-bg-color: hsla(var(--md-hue), 0%, 100%, 0.025);

// Footer color shades
--md-footer-bg-color: hsla(var(--md-hue), 15%, 12%, 0.87);
--md-footer-bg-color--dark: hsla(var(--md-hue), 15%, 10%, 1);

// Black and white primary colors
&[data-md-color-primary="black"],
&[data-md-color-primary="white"] {

// Typeset color shades
--md-typeset-a-color: hsla(#{hex2hsl($clr-indigo-400)}, 1);
}
}
}
@@ -38,6 +38,13 @@
<meta name="description" content="{{ config.site_description }}" />
{% endif %}

<!-- Page keywords -->
{% if page and page.meta and page.meta.keywords %}
<meta name="keywords" content="{{ page.meta.keywords }}" />
{% elif config.site_keywords %}
<meta name="keywords" content="{{ config.site_keywords }}" />
{% endif %}

<!-- Canonical -->
{% if page.canonical_url %}
<link rel="canonical" href="{{ page.canonical_url }}" />
@@ -343,6 +350,7 @@ <h1>{{ page.title | default(config.site_name, true)}}</h1>
"search.config.lang",
"search.config.pipeline",
"search.config.separator",
"search.placeholder",
"search.result.placeholder",
"search.result.none",
"search.result.one",
@@ -84,14 +84,14 @@ <h1>Technical documentation that just works</h1>
title="{{ page.next_page.title | e }}"
class="md-button md-button--primary"
>
Get started
Quick start
</a>
<a
href="{{ config.repo_url }}"
title="{{ lang.t('source.link.title') }}"
href="{{ 'insiders/' | url }}"
title="Material for MkDocs Insiders"
class="md-button"
>
Go to GitHub
Get Insiders
</a>
</div>
</div>
@@ -20,6 +20,12 @@
IN THE SOFTWARE.
-->

<!-- Mitigate bug: https://github.com/mkdocs/mkdocs/issues/2191 -->
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %}
{% set site_url = site_url ~ "/index.html" %}
{% endif %}

<!-- Application header -->
<header class="md-header" data-md-component="header">

@@ -28,7 +34,7 @@

<!-- Link to home -->
<a
href="{{ config.site_url | default(nav.homepage.url, true) | url }}"
href="{{ site_url }}"
title="{{ config.site_name | e }}"
class="md-header-nav__button md-logo"
aria-label="{{ config.site_name }}"
@@ -34,6 +34,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\,\。]+",
"search.placeholder": "搜尋",
"search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "鍵入以開始檢索",
"search.result.none": "沒有找到符合條件的結果",
"search.result.one": "找到 1 个符合條件的結果",
@@ -34,6 +34,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\s\- 、。,.?;]+",
"search.placeholder": "搜尋",
"search.result.initializer": "正在初始化搜尋引擎",
"search.result.placeholder": "打字進行搜尋",
"search.result.none": "沒有符合的項目",
"search.result.one": "找到 1 個符合的項目",
@@ -34,6 +34,7 @@
"search.config.pipeline": "trimmer, stemmer",
"search.config.separator": "[\,\。]+",
"search.placeholder": "搜索",
"search.result.initializer": "正在初始化搜索引擎",
"search.result.placeholder": "键入以开始搜索",
"search.result.none": "没有找到符合条件的结果",
"search.result.one": "找到 1 个符合条件的结果",
@@ -20,6 +20,12 @@
IN THE SOFTWARE.
-->

<!-- Mitigate bug: https://github.com/mkdocs/mkdocs/issues/2191 -->
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %}
{% set site_url = site_url ~ "/index.html" %}
{% endif %}

<!-- Main navigation -->
<nav
class="md-nav md-nav--primary"
@@ -30,7 +36,7 @@
<!-- Site title -->
<label class="md-nav__title" for="__drawer">
<a
href="{{ config.site_url | default(nav.homepage.url, true) | url }}"
href="{{ site_url }}"
title="{{ config.site_name | e }}"
class="md-nav__button md-logo"
aria-label="{{ config.site_name }}"