diff --git a/.forgejo/workflows/docs.yml b/.forgejo/workflows/docs.yml index 9b67095..70a16f0 100644 --- a/.forgejo/workflows/docs.yml +++ b/.forgejo/workflows/docs.yml @@ -23,9 +23,11 @@ jobs: env: TOKEN: ${{ secrets.RELEASE }} SITE_DIR: /tmp/site - # URL publique du site de documentation : sert à construire les liens du - # sélecteur de version, qui doivent être absolus pour fonctionner depuis - # n'importe quelle page de n'importe quelle version. + # URL publique du site. Elle ne sert qu'aux liens du menu de version : + # ceux-ci sont concaténés au chemin de la page courante puis posés en + # href, donc un chemin relatif y serait résolu par rapport à la page et + # casserait selon la profondeur. Le switcher.json, lui, est référencé en + # relatif et n'en dépend pas. DOCS_BASE_URL: https://syonad.g3e.fr/two steps: # fetch-depth: 0 — les tags et leur contenu sont nécessaires : chaque diff --git a/docs/conf.py b/docs/conf.py index 995b4dd..d6f23a2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -72,7 +72,12 @@ html_theme_options = { if _docs_base_url and _docs_version: html_theme_options['switcher'] = { - 'json_url': f'{_docs_base_url}/switcher.json', + # Chemin relatif volontairement : le thème le résout contre la racine + # de la version courante, donc toujours dans la même origine que la + # page. Une URL absolue ferait échouer la requête en CORS dès que le + # site est consulté depuis un autre hôte — un serveur de test local, + # par exemple. + 'json_url': '../switcher.json', 'version_match': _docs_version, } # Le thème book vide navbar_start et place tout dans la barre latérale : le