mirror of
https://github.com/fastapi/fastapi.git
synced 2026-05-18 13:27:45 -04:00
✨ Add Material for MkDocs Insiders features and cards (#9748)
* ➕ Add dependencies for MkDocs Insiders * 🙈 Add Insider's .cache to .gitignore * 🔧 Update MkDocs configs for Insiders * 💄 Add custom Insiders card layout, while the custom logo is provided from upstream * 🔨 Update docs.py script to dynamically enable insiders if it's installed * 👷 Add cache for MkDocs Material Insiders' cards * 🔊 Add a small log to the docs CLI * 🔊 Tweak logs, only after exporting languages * 🐛 Fix accessing non existing env var * 🔧 Invalidate deps cache * 🔧 Tweak cache IDs * 👷 Update cache for installing insiders * 🔊 Log insiders * 💚 Invalidate cache * 👷 Tweak cache keys * 👷 Trigger CI and test cache * 🔥 Remove cache comment * ⚡️ Optimize cache usage for first runs of docs * 👷 Tweak cache for MkDocs Material cards * 💚 Trigger CI to test cache
This commit is contained in:
committed by
GitHub
parent
afc237ad53
commit
ed297bb2e0
@@ -4,7 +4,9 @@ import os
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
from functools import lru_cache
|
||||
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
||||
from importlib import metadata
|
||||
from multiprocessing import Pool
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, List, Optional, Union
|
||||
@@ -34,6 +36,12 @@ site_path = Path("site").absolute()
|
||||
build_site_path = Path("site_build").absolute()
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def is_mkdocs_insiders() -> bool:
|
||||
version = metadata.version("mkdocs-material")
|
||||
return "insiders" in version
|
||||
|
||||
|
||||
def get_en_config() -> Dict[str, Any]:
|
||||
return mkdocs.utils.yaml_load(en_config_path.read_text(encoding="utf-8"))
|
||||
|
||||
@@ -59,6 +67,14 @@ def complete_existing_lang(incomplete: str):
|
||||
yield lang_path.name
|
||||
|
||||
|
||||
@app.callback()
|
||||
def callback() -> None:
|
||||
if is_mkdocs_insiders():
|
||||
os.environ["INSIDERS_FILE"] = "../en/mkdocs.insiders.yml"
|
||||
# For MacOS with insiders and Cairo
|
||||
os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = "/opt/homebrew/lib"
|
||||
|
||||
|
||||
@app.command()
|
||||
def new_lang(lang: str = typer.Argument(..., callback=lang_callback)):
|
||||
"""
|
||||
@@ -93,6 +109,10 @@ def build_lang(
|
||||
"""
|
||||
Build the docs for a language.
|
||||
"""
|
||||
insiders_env_file = os.environ.get("INSIDERS_FILE")
|
||||
print(f"Insiders file {insiders_env_file}")
|
||||
if is_mkdocs_insiders():
|
||||
print("Using insiders")
|
||||
lang_path: Path = Path("docs") / lang
|
||||
if not lang_path.is_dir():
|
||||
typer.echo(f"The language translation doesn't seem to exist yet: {lang}")
|
||||
|
||||
Reference in New Issue
Block a user