Lignes directrices
Lignes directrices de soumission
Cette page documente le contrat que tout thème et plugin de cette marketplace s'engage à respecter. Ce n'est pas une barrière — c'est un petit ensemble de pratiques qui maintiennent les installations prévisibles et les désinstallations propres.
Checklist plugin
- Un
manifest.jsonvalide avec les champsid,name,version,apiVersionetentry. - Le bundle doit externaliser
react,react-dom,react-i18nextet@flexweg/cms-runtime— ne dupliquez jamais React dans votre build. - Page de réglages enregistrée via
manifest.settings; la page est montée à/admin/#/settings/plugin/<id>. - Bundles i18n via
manifest.i18n = { en, fr, … }. L'anglais est requis ; les autres locales sont encouragées. - Si le plugin écrit sur Flexweg, routez chaque écriture par les exports du dispatcher (
uploadFile,deleteFile, …) pour que les toasts d'erreur standards s'appliquent.
Checklist thème
- Six templates exportés depuis le manifest :
base,home,single,category,author,notFound. BaseLayoutDOIT émettre les deux sentinelles :<meta name="x-cms-head-extra" />dans<head>et<script type="application/x-cms-body-end" />avant</body>. Les plugins y injectent du contenu head + body.- Les templates acceptent uniquement des props sérialisables — pas de lectures Firestore, pas de contexte admin.
- Support multilingue : lisez
currentLocaledansBaseLayout, utilisezsite.homePathpour le lien de marque, préfixez les URLs internes en dur avec la locale, et choisissez les libellés de menu par langue depuisResolvedMenuItem.labels.
Nommage + licence
- Utilisez un id kebab-case unique (par ex.
acme-newsletter) — l'id est immutable après installation. - Licence MIT (ou toute licence permissive validée OSI).
- Ajoutez un
README.mdau bundle avec les notes d'installation + configuration — les admins le lisent depuis la page Plugins.