mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-06-14 11:52:32 +03:00
build with overrides
This commit is contained in:
parent
bf8dcb0996
commit
20a195365f
18
material/.overrides/assets/javascripts/custom.a7283b5f.min.js
vendored
Normal file
18
material/.overrides/assets/javascripts/custom.a7283b5f.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
material/.overrides/assets/stylesheets/custom.2fa34c39.min.css
vendored
Normal file
1
material/.overrides/assets/stylesheets/custom.2fa34c39.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["src/.overrides/assets/stylesheets/custom/_typeset.scss","../../../../src/.overrides/assets/stylesheets/custom.scss","src/assets/stylesheets/utilities/_break.scss","src/.overrides/assets/stylesheets/custom/layout/_banner.scss","src/.overrides/assets/stylesheets/custom/layout/_hero.scss","src/.overrides/assets/stylesheets/custom/layout/_iconsearch.scss","src/.overrides/assets/stylesheets/custom/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"custom.css"}
|
29
material/.overrides/home.html
Normal file
29
material/.overrides/home.html
Normal file
@ -0,0 +1,29 @@
|
||||
{#-
|
||||
This file was automatically generated - do not edit
|
||||
-#}
|
||||
{% extends "main.html" %}
|
||||
{% block tabs %}
|
||||
{{ super() }}
|
||||
<style>.md-header{position:initial}.md-main__inner{margin:0}.md-content{display:none}@media screen and (min-width:60em){.md-sidebar--secondary{display:none}}@media screen and (min-width:76.25em){.md-sidebar--primary{display:none}}</style>
|
||||
<section class="mdx-container">
|
||||
<div class="md-grid md-typeset">
|
||||
<div class="mdx-hero">
|
||||
<div class="mdx-hero__image">
|
||||
<img src="assets/images/illustration.png" alt="" width="1659" height="1200" draggable="false">
|
||||
</div>
|
||||
<div class="mdx-hero__content">
|
||||
<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">
|
||||
Quick start
|
||||
</a>
|
||||
<a href="{{ 'insiders/' | url }}" title="Material for MkDocs Insiders" class="md-button">
|
||||
Get Insiders
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
{% block content %}{% endblock %}
|
||||
{% block footer %}{% endblock %}
|
32
material/.overrides/hooks/translations.html
Normal file
32
material/.overrides/hooks/translations.html
Normal file
@ -0,0 +1,32 @@
|
||||
{#-
|
||||
This file was automatically generated - do not edit
|
||||
-#}
|
||||
{% macro render_language(language) %}
|
||||
<div class="mdx-flags__item" markdown>
|
||||
:flag_{{ language.flag }}:{ .lg .middle }
|
||||
<span class="mdx-flags__content">
|
||||
<span>
|
||||
<strong>{{ language.name }}</strong>
|
||||
<code>{{ language.code }}</code>
|
||||
</span>
|
||||
{% if language.miss %}
|
||||
<span>
|
||||
<a href="{{ language.link }}">
|
||||
{{ language.miss | length }} translations missing
|
||||
</a>
|
||||
</span>
|
||||
{% else %}
|
||||
<small>Complete</small>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
{% macro render(translations, start = 1) %}
|
||||
<div class="mdx-columns mdx-flags" markdown>
|
||||
<ol markdown>
|
||||
{% for language in translations %}
|
||||
<li markdown>{{ render_language(language) }}</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
{% endmacro %}
|
186
material/.overrides/hooks/translations.py
Normal file
186
material/.overrides/hooks/translations.py
Normal file
@ -0,0 +1,186 @@
|
||||
# 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.
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
from glob import glob
|
||||
from mkdocs.config.defaults import MkDocsConfig
|
||||
from mkdocs.structure.pages import Page
|
||||
from urllib.parse import urlencode, urlparse
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Hooks
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Determine missing translations and render language overview in the setup
|
||||
# guide, including links to provide missing translations.
|
||||
def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig, files):
|
||||
issue_url = "https://github.com/squidfunk/mkdocs-material/issues/new"
|
||||
if page.file.src_uri != "setup/changing-the-language.md":
|
||||
return
|
||||
|
||||
# Collect all existing languages
|
||||
names: dict[str, str] = dict()
|
||||
known: dict[str, dict[str, str]] = dict()
|
||||
for path in glob("src/partials/languages/*.html"):
|
||||
with open(path, "r", encoding = "utf-8") as f:
|
||||
data = f.read()
|
||||
|
||||
# Extract language code and name
|
||||
name, = re.findall(r"<!-- Translations: (.+) -->", data)
|
||||
code, _ = os.path.splitext(os.path.basename(path))
|
||||
|
||||
# Map names and available translations
|
||||
names[code] = name
|
||||
known[code] = dict(re.findall(
|
||||
r"^ \"([^\"]+)\": \"([^\"]*)\"(?:,|$)?", data,
|
||||
re.MULTILINE
|
||||
))
|
||||
|
||||
# Remove technical stuff
|
||||
for key in [
|
||||
"direction",
|
||||
"search.config.pipeline",
|
||||
"search.config.lang",
|
||||
"search.config.separator"
|
||||
]:
|
||||
if key in known[code]:
|
||||
del known[code][key]
|
||||
|
||||
# Traverse all languages and compute missing translations
|
||||
languages = []
|
||||
reference = set(known["en"])
|
||||
for code, name in names.items():
|
||||
miss = reference - set(known[code])
|
||||
|
||||
# Check each translations
|
||||
translations: list[str] = []
|
||||
for key, value in known["en"].items():
|
||||
if key in known[code]:
|
||||
translations.append(
|
||||
f" \"{key}\": \"{known[code][key]}\""
|
||||
)
|
||||
else:
|
||||
translations.append(
|
||||
f" \"{key}\": \"{value} ⬅️\""
|
||||
)
|
||||
|
||||
# Assemble GitHub issue URL
|
||||
link = urlparse(issue_url)
|
||||
link = link._replace(query = urlencode({
|
||||
"template": "04-add-a-translation.yml",
|
||||
"title": f"Update {name} translations",
|
||||
"translations": "\n".join([
|
||||
"{% macro t(key) %}{{ {",
|
||||
",\n".join(translations),
|
||||
"}[key] }}{% endmacro %}"
|
||||
])
|
||||
}))
|
||||
|
||||
# Add translation
|
||||
languages.append({
|
||||
"flag": countries[code],
|
||||
"code": code,
|
||||
"name": name,
|
||||
"link": link.geturl(),
|
||||
"miss": miss
|
||||
})
|
||||
|
||||
# Load template and render translations
|
||||
env = config.theme.get_env()
|
||||
template = env.get_template( "hooks/translations.html")
|
||||
translations = template.module.render(
|
||||
sorted(languages, key = lambda language: language["name"])
|
||||
)
|
||||
|
||||
# Replace translation marker
|
||||
return markdown.replace(
|
||||
"<!-- hooks/translations.py -->", "\n".join(
|
||||
[line.lstrip() for line in translations.split("\n")
|
||||
]
|
||||
))
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Data
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Map ISO 639-1 (languages) to ISO 3166 (countries)
|
||||
countries = dict({
|
||||
"af": "za",
|
||||
"ar": "ae",
|
||||
"bg": "bg",
|
||||
"bn": "bd",
|
||||
"ca": "es",
|
||||
"cs": "cz",
|
||||
"da": "dk",
|
||||
"de": "de",
|
||||
"el": "gr",
|
||||
"en": "us",
|
||||
"eo": "eu",
|
||||
"es": "es",
|
||||
"et": "ee",
|
||||
"fa": "ir",
|
||||
"fi": "fi",
|
||||
"fr": "fr",
|
||||
"gl": "es",
|
||||
"he": "il",
|
||||
"hi": "in",
|
||||
"hr": "hr",
|
||||
"hu": "hu",
|
||||
"hy": "am",
|
||||
"id": "id",
|
||||
"is": "is",
|
||||
"it": "it",
|
||||
"ja": "jp",
|
||||
"ka": "ge",
|
||||
"ko": "kr",
|
||||
"ku-IQ": "iq",
|
||||
"lt": "lt",
|
||||
"lv": "lv",
|
||||
"mk": "mk",
|
||||
"mn": "mn",
|
||||
"ms": "my",
|
||||
"my": "mm",
|
||||
"nb": "no",
|
||||
"nl": "nl",
|
||||
"nn": "no",
|
||||
"pl": "pl",
|
||||
"pt-BR": "br",
|
||||
"pt": "pt",
|
||||
"ro": "ro",
|
||||
"ru": "ru",
|
||||
"sh": "rs",
|
||||
"si": "lk",
|
||||
"sk": "sk",
|
||||
"sl": "si",
|
||||
"sr": "rs",
|
||||
"sv": "se",
|
||||
"th": "th",
|
||||
"tl": "ph",
|
||||
"tr": "tr",
|
||||
"uk": "ua",
|
||||
"ur": "pk",
|
||||
"uz": "uz",
|
||||
"vi": "vn",
|
||||
"zh": "cn",
|
||||
"zh-Hant": "cn",
|
||||
"zh-TW": "tw"
|
||||
})
|
27
material/.overrides/main.html
Normal file
27
material/.overrides/main.html
Normal file
@ -0,0 +1,27 @@
|
||||
{#-
|
||||
This file was automatically generated - do not edit
|
||||
-#}
|
||||
{% extends "base.html" %}
|
||||
{% block extrahead %}
|
||||
<link rel="stylesheet" href="{{ 'assets/stylesheets/custom.2fa34c39.min.css' | url }}">
|
||||
{% endblock %}
|
||||
{% block announce %}
|
||||
For updates follow <strong>@squidfunk</strong> on
|
||||
<a rel="me" href="https://fosstodon.org/@squidfunk">
|
||||
<span class="twemoji mastodon">
|
||||
{% include ".icons/fontawesome/brands/mastodon.svg" %}
|
||||
</span>
|
||||
<strong>Fosstodon</strong>
|
||||
</a>
|
||||
and
|
||||
<a href="https://twitter.com/squidfunk">
|
||||
<span class="twemoji twitter">
|
||||
{% include ".icons/fontawesome/brands/twitter.svg" %}
|
||||
</span>
|
||||
<strong>Twitter</strong>
|
||||
</a>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<script src="{{ 'assets/javascripts/custom.a7283b5f.min.js' | url }}"></script>
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user