🌐 Add docs lang selector widget (#2542)

*  Add language selector widget

* 🔧 Update script to re-generate MkDocs configs, including langs widget

* 🔧 Update languages MkDocs configs, with lang selector widget
This commit is contained in:
Sebastián Ramírez 2020-12-19 20:54:02 +01:00 committed by GitHub
parent ed0fe9f369
commit 9f89399f5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 316 additions and 4 deletions

View File

@ -183,6 +183,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- css/termynal.css - css/termynal.css
- css/custom.css - css/custom.css

View File

@ -87,6 +87,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -102,6 +102,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -88,6 +88,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -80,6 +80,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -107,6 +107,31 @@ extra:
link: https://medium.com/@tiangolo link: https://medium.com/@tiangolo
- icon: fontawesome/solid/globe - icon: fontawesome/solid/globe
link: https://tiangolo.com link: https://tiangolo.com
alternate:
- link: /
name: en - English
- link: /es/
name: es - español
- link: /fr/
name: fr - français
- link: /it/
name: it - italiano
- link: /ja/
name: ja - 日本語
- link: /ko/
name: ko - 한국어
- link: /pt/
name: pt - português
- link: /ru/
name: ru - русский язык
- link: /sq/
name: sq - shqip
- link: /tr/
name: tr - Türkçe
- link: /uk/
name: uk - українська мова
- link: /zh/
name: zh - 汉语
extra_css: extra_css:
- https://fastapi.tiangolo.com/css/termynal.css - https://fastapi.tiangolo.com/css/termynal.css
- https://fastapi.tiangolo.com/css/custom.css - https://fastapi.tiangolo.com/css/custom.css

View File

@ -4,7 +4,7 @@ import shutil
from http.server import HTTPServer, SimpleHTTPRequestHandler from http.server import HTTPServer, SimpleHTTPRequestHandler
from multiprocessing import Pool from multiprocessing import Pool
from pathlib import Path from pathlib import Path
from typing import Dict, Optional, Tuple from typing import Dict, List, Optional, Tuple
import mkdocs.commands.build import mkdocs.commands.build
import mkdocs.commands.serve import mkdocs.commands.serve
@ -364,12 +364,24 @@ def update_config(lang: str):
config["nav"] = current_config["nav"] config["nav"] = current_config["nav"]
config["theme"]["language"] = current_config["theme"]["language"] config["theme"]["language"] = current_config["theme"]["language"]
languages = [{"en": "/"}] languages = [{"en": "/"}]
for lang in get_lang_paths(): alternate: List[Dict[str, str]] = config["extra"].get("alternate", [])
if lang.name == "en" or not lang.is_dir(): alternate_dict = {alt["link"]: alt["name"] for alt in alternate}
new_alternate: List[Dict[str, str]] = []
for lang_path in get_lang_paths():
if lang_path.name == "en" or not lang_path.is_dir():
continue continue
name = lang.name name = lang_path.name
languages.append({name: f"/{name}/"}) languages.append({name: f"/{name}/"})
for lang_dict in languages:
name = list(lang_dict.keys())[0]
url = lang_dict[name]
if url not in alternate_dict:
new_alternate.append({"link": url, "name": name})
else:
use_name = alternate_dict[url]
new_alternate.append({"link": url, "name": use_name})
config["nav"][1] = {"Languages": languages} config["nav"][1] = {"Languages": languages}
config["extra"]["alternate"] = new_alternate
config_path.write_text( config_path.write_text(
yaml.dump(config, sort_keys=False, width=200, allow_unicode=True), yaml.dump(config, sort_keys=False, width=200, allow_unicode=True),
encoding="utf-8", encoding="utf-8",