Fait avec Chinaski

Structure de sortie

Chaque build produit une simple arborescence de répertoires de fichiers. Cette page décrit ce qui vit où, pour que vous sachiez exactement ce qui part en ligne.

Racines par langue

Dans le mode d'URL par chemin par défaut, chaque langue active reçoit sa propre sous-arborescence :

output/
  en/
  es/
  pt/

Sans segments de langue (mode unilingue), le contenu se trouve directement dans output/. En mode sous-domaine, les mêmes répertoires par langue portent le contenu, et votre serveur web route chaque sous-domaine de langue vers son répertoire.

La promotion remplace l'arborescence live via un symlink ou un renommage de répertoire ; les visiteurs ne voient jamais qu'une arborescence entièrement construite.

Fichiers de pages et de billets

  • Les pages vivent à leur propre chemin imbriqué : output/en/about/philosophy/index.html pour une page enfant sous son parent.
  • Les billets vivent sous le préfixe blog à l'intérieur de l'arborescence de langue : output/en/blog/my-post/index.html (le préfixe est par défaut blog et peut être remplacé par langue).
  • Les archives de catégories se trouvent également dans le préfixe blog : /blog/category/<slug>/.

Les catégories et les pages s'imbriquent depuis la structure de contenu de l'administration ; les règles de base des URL viennent des réglages d'URL de chaque langue.

Fichiers partagés par langue

Chaque répertoire de langue porte aussi ses fichiers de détection et d'index générés :

  • sitemap.xml
  • robots.txt
  • feed.xml : seulement quand cette langue a au moins un billet publié
  • search-index.json : l'index qui alimente la recherche du site
  • 404.html : la page introuvable construite
  • .well-known/security.txt : quand un contact de sécurité est configuré
  • Extras PWA quand activés : manifest.json, sw.js, offline.html

Au niveau racine : une page de redirection (ou une vraie page) occupe output/{lang}/index.html selon l'endroit où la racine du domaine doit pointer.

Les assets sont synchronisés par langue

Les grands répertoires partagés sont copiés dans chaque langue à chaque build :

  • media/ : les envois de l'écran média de l'administration, reflétés dans chaque arborescence de langue ; seuls les fichiers modifiés sont réécrits, si bien que les assets synchronisés traversent les builds inchangés.
  • fonts/ : les fichiers de police du site.
  • Les fichiers favicon à la racine de la langue (favicon.ico, favicon-96x96.png, apple-touch-icon.png) quand l'un est configuré.

Un fichier de logo doit être présent dans le dossier d'assets du site ; les builds avertissent « not found in assets/, skipping » si le réglage en nomme un qui n'y est pas. Le journal de build marque chaque synchronisation d'une ligne « media synced » par répertoire de langue.

Redirections

Les redirections sont rendues de deux manières dans l'arborescence :

  • des pages de redirection HTML aux anciens chemins (avec liens canoniques), par langue ;
  • des extraits de configuration serveur générés à la racine de sortie (_redirects.caddy), et pour les configurations à la netlify un fichier _redirects également ; les redirections par motif n'existent que comme pages HTML.

En dehors de l'arborescence de sortie

Le build écrit aussi un manifeste signé en dehors de la sortie : un répertoire private/ à côté contient build-manifest.json et sa signature. C'est la revendication d'intégrité de ce qui est parti en ligne, et en cas de promotion ratée, le manifeste précédent est restauré, pas écrasé.

Lisez ce site en