FR EN

Chapitre 22Référence

Référence

Variables, commandes, options, tokens, attributs, codes d'erreur, glossaire. Ce qu'on vient chercher sans vouloir relire un chapitre.

5 min de lecture11 sectionsChapitre 22 / 22

Variables d'environnement

Toutes documentées dans .env.example, le seul fichier d'environnement versionné. En local : .dev.vars. En production : la configuration de l'hébergeur, en secrets d'exécution. Jamais le dépôt.

VariableObligatoireRôle
EDITOR_KEY_HASHouiEmpreinte argon2id de la clé du site. Sans elle, aucune édition possible — c'est l'état par défaut.
SESSION_SECRETouiSignature des cookies de session. 32 caractères minimum. La remplacer ferme toutes les sessions.
EDITOR_NAMErecommandéNom d'auteur des publications. Défaut : « Éditeur du site ».
EDITOR_EMAILrecommandéAdresse d'auteur des publications.
GIT_PROVIDERouigithub ou gitlab (non implémenté). Défaut : github.
GIT_REPOouipropriétaire/dépôt chez GitHub ; groupe/projet ou identifiant numérique chez GitLab.
GIT_BRANCHouiBranche des publications. Défaut : main.
GIT_TOKENouiJeton d'écriture du compte machine. Portée restreinte au seul dépôt.
GIT_API_BASEnonAutre racine d'API : instance auto-hébergée, ou faux service local (http://127.0.0.1:8787).
RATE_LIMITen productionLiaison clé-valeur, pas une variable texte. Sans elle, le comptage retombe en mémoire.

Commandes

CommandeRôle
npm create inline@latest <dossier>partoutCrée un site. Options : --nom, --courriel, --langue.
npm run devsite, dépôtServeur Astro seul — mise en page, sans l'édition.
npm run buildsite, dépôtBuild de production. Échoue si le contenu est invalide.
npm run serve:functionssite, dépôtSite + fonctions sur http://127.0.0.1:8788. C'est ici qu'on édite.
npm run mock:gitsite, dépôtFaux dépôt Git local sur :8787. Port : MOCK_PORT.
npm run checksite, dépôtHTML brut, parité des langues, journaux, secrets.
npm testdépôtToute la suite, build compris.
npm run create:sitedépôtAccès d'un site. Options : --nom, --depot, --branche, --auteur, --courriel, --ecrire.
npm run make:keysite, dépôtUne clé et son empreinte — la rotation. Livrée avec le site depuis create-inline 1.1.0.
npm run bootstrapdépôtAmorçage. Options : --html, --page, --langue, --essai, --sortie.
npm run test:scaffolddépôtSite créé de zéro, installé, construit, contrôlé.
npm run test:packdépôtIdem, depuis les archives d'une publication.
npm run pack:core / pack:clidépôtFabrique les archives.
npm run release:core / release:clidépôtPublie sur le registre.

Options de l'intégration

js js
inline({
  locales: ['fr', 'en'],                    // obligatoire — la référence en premier
  support: { email: 'contact@agence.fr' },  // affichée au client sur /admin et /aide
  theme: 'src/styles/theme.css',            // défaut
  pages: { admin: true, help: true },       // false pour fournir la vôtre
})

Tokens de style

CléValeursClasse produiteVariable attendue
sizexs sm base lg xl 2xl 3xl.cms-size-*--size-*
weightthin light regular medium semibold bold.cms-weight-*--weight-*
italictrue false.cms-italic
alignleft center right.cms-align-*
colorprimary secondary muted accent inverse.cms-color-*--color-*

Types de champs

text text
text      { type, value, style }                                titres, labels, paragraphes simples
richtext  { type, value }                                       emphase, liens, listes — 7 balises
image     { type, kind:'image', src, alt, width, height }        fichier de src/media
video     { type, kind:'video', provider, videoId, title }       YouTube ou Vimeo, jamais de fichier

Attributs posés dans le HTML

AttributValeur
data-cmsChemin du champ, ex. blocks.hero.title
data-cms-typetext · richtext · media
data-cms-kindimage · video
data-cms-untranslatedtrue si le champ vient de la langue de référence
data-cms-listcollections.{nom}
data-cms-itemIdentifiant de l'item
data-cms-templateNom de la liste dont c'est le modèle
data-cms-blankJSON d'un item vierge
data-cms-fileFichier de contenu de la page (sur body)
data-cms-locale · data-cms-pageLangue et page en cours (sur body)
data-cms-localesLangues du site : code, adresse, libellé (sur body)

Règles de nommage

ObjetFormeExemple
Fichier de pageminuscules, chiffres, traits d'unionnos-services.json
Chemin d'écrituresrc/content/pages/{langue}/{page}.jsonsrc/content/pages/fr/home.json
Fichier média[a-z0-9]+(-[a-z0-9]+)*.(jpg|png|webp)fournil-au-petit-matin.webp
Identifiant d'itemune lettre, un tiret, 3 chiffres minimumt-001
Code de languedeux lettres minusculesfr
Message de publicationune ligne, 120 caractèrescontent(fr): home — hero.title

Codes d'erreur

Code interneHTTPSignification
bad_request400Corps ou chemin invalide.
unauthorized401 / 502Session absente (401) ou dépôt refusant l'accès (502).
method_not_allowed405Méthode non prévue sur cette route.
not_found404 / 502Fichier ou dépôt introuvable.
conflict409Version périmée : quelqu'un a publié entre-temps.
too_large413Plafond de taille dépassé.
unsupported_format415Format d'image non reconnu ou dimensions hors bornes.
invalid_content422Schéma, média, identifiants ou balisage refusés.
429Débit dépassé. En-tête retry-after.
unavailable502Le dépôt n'a pas répondu.

Ports

4321npm run devAstro seul
8788npm run serve:functionsSite + fonctions
8787npm run mock:gitFaux dépôt Git

Glossaire

TermeCe que c'estCe que le client lit
OverlayL'interface d'édition superposée à la page.
Clé de siteLe secret partagé, haché en argon2id.« votre clé »
Témoin d'éditionCookie sans secret qui déclenche le chargement de l'overlay.
Verrou optimisteComparaison de version avant écriture.« quelqu'un a publié entre-temps »
VersionEmpreinte opaque de l'état d'un fichier (SHA du blob chez GitHub).
PublicationUn commit, puis une reconstruction du site.« Publier »
BrouillonModifications enregistrées dans le navigateur.« modifications non publiées »
Token de styleUne valeur d'enum du schéma.un bouton de la barre
AmorçageExtraction du contenu d'une page HTML annotée.

Où lire le code

QuestionFichier
Quelle est la forme du contenu ?inline-core/src/schema.ts
Quelles variantes de style existent ?inline-core/src/style-tokens.ts
Qui a le droit d'écrire ?inline-core/src/server/auth.ts
Quels plafonds, quels chemins, quels budgets ?inline-core/src/server/guard.ts
Comment on parle au dépôt ?inline-core/src/server/git-provider.ts, github.ts
Que fait la publication, dans l'ordre ?inline-core/src/server/routes/save.ts
Comment l'overlay relie DOM et JSON ?inline-core/src/editor/index.ts
Qu'est-ce qui est posé dans la page ?inline-core/astro/index.ts
Comment une adresse de vidéo est lue ?inline-core/src/video.ts
Comment le repli de traduction marche ?inline-core/src/translate.ts