Plugins must-use — vue d'ensemble

Les plugins must-use (« MU ») sont toujours actifs. Pas de bouton Activer / Désactiver, pas d'entrée dans , pas de moyen de les éteindre depuis l'UI admin.

Les plugins must-use (« MU ») sont toujours actifs. Pas de bouton Activer / Désactiver, pas d'entrée dans settings.enabledPlugins, pas de moyen de les éteindre depuis l'UI admin.

Ils portent des fonctionnalités que le reste de l'admin (ou le site publié typique) suppose présentes :

  • L'éditeur de post / page repose sur flexweg-blocks pour fournir le set de blocs colonnes + HTML personnalisé.
  • Les sites avec analytics ou un widget de chat ne peuvent pas voir leurs scripts disparaître quand quelqu'un toggle un plugin off — flexweg-custom-code est must-use pour prévenir cette footgun.
  • Les embeds insérés dans les posts (YouTube, Vimeo, Twitter, Spotify) silencieusement deviendraient des marqueurs cassés si flexweg-embeds était désactivé.
  • Les favicons + le PWA manifest sont quelque chose dont chaque site public bénéficie — flexweg-favicon est livré toujours actif.
  • Les cartes de métriques du tableau de bord (utilisation de stockage, comptages de documents) viennent de flexweg-metrics.
  • Le flux d'import (markdown / WordPress XML) vit dans flexweg-import pour pouvoir évoluer indépendamment.

Liste des plugins must-use

Plugin Que fait-il
flexweg-blocks Blocs colonnes + HTML personnalisé pour l'éditeur
flexweg-custom-code Injection HTML / CSS / JS site-wide (head + body-end)
flexweg-favicon Favicon multi-format + PWA manifest à partir d'une image source
flexweg-embeds YouTube, Vimeo, Twitter, Spotify embed blocks
flexweg-metrics Cartes de stockage + comptages de documents sur le dashboard
flexweg-import Bulk import de contenu depuis markdown ou WXR

Configuration

Les plugins must-use n'ont pas de toggle on/off mais peuvent avoir une page de réglages. Quand ils en ont une, elle est accessible via :

  • Sidebar Settings → onglet du plugin
  • Page Plugins → onglet Must-use → bouton Configure sur la carte

Les configs sont stockées dans pluginConfigs[<id>] comme pour les plugins toggleables.

Pas accessibles via API

Le code admin ne peut pas désactiver un plugin must-use. La logique est :

TS
function applyPluginRegistration(enabledFlags) {
  resetRegistry();
  // 1. MU first, unconditionally
  for (const plugin of MU_PLUGINS) {
    plugin.register(api);
  }
  // 2. Toggleable plugins, only if enabled
  for (const plugin of PLUGINS) {
    if (enabledFlags[plugin.id]) plugin.register(api);
  }
}

MU_PLUGINS est itéré inconditionnellement à chaque pass.

Et si je veux quand même désactiver ?

Le seul moyen de retirer un MU plugin est de :

  1. Forker le projet
  2. Retirer son entrée de src/mu-plugins/index.ts
  3. Re-builder dist/

C'est intentionnel — les MU sont must-use parce que les disable accidentellement causerait des régressions silencieuses sur les sites publiés.

Ordre d'enregistrement

Les MU s'enregistrent en premier, puis les toggleables. Donc :

  • Si vous écrivez un plugin toggleable qui s'accroche à post.html.body après flexweg-blocks, votre handler tournera après (priorités égales — ordre d'enregistrement compte)
  • Si vous voulez tourner AVANT un MU, mettez votre priorité < 10 explicitement

Voir Hooks pour les détails.

Compatibility des MU

Les MU plugins peuvent changer de version entre releases de l'admin. Les changements breaking sont rares (ils casseraient les sites en prod). Quand ils arrivent :

  • Annoncés dans le CHANGELOG de Flexweg CMS
  • Documentation mise à jour pour expliquer le path de migration
  • Quand possible, comportement bascule avec un flag dans pluginConfigs[<id>]