mirror of https://github.com/tiangolo/fastapi.git
🌐 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:
parent
ed0fe9f369
commit
9f89399f5e
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue