Migrer depuis Decap ou Sveltia
Decap et Sveltia stockent le contenu en fichiers markdown dans votre dépôt et l’éditent à travers un config.yml. Menestrel remplace ce couple par une API et une admin, pendant que votre site reste 100 % statique. La migration est mécanique : vos collections se traduisent en cms.config.ts, vos fichiers s’importent avec menestrel import, vos composants continuent de fonctionner à travers le loader.
Ce guide vient d’une migration réelle : un site vitrine de cinq singletons et 23 images, mené de bout en bout en moins d’une demi-heure.
-
Connectez le site
Terminal window npx create-menestrel@latest # ou, dans un site existant :npx menestrel initinitdétecte Astro, écrit votre token dans.env, crée uncms.config.tsde départ et branchecontent.config.tssur le loader Menestrel. -
Traduisez config.yml en cms.config.ts
Chaque collection Decap/Sveltia devient une
collection()(ou unsingleton()pour les collectionsfiles:) ; chaque widget correspond à un builder :widget config.yml cms.config.ts stringfields.text()textfields.textarea()markdownfields.richtext()numberfields.number()booleanfields.boolean()selectfields.select({ options })datetimefields.date()oufields.datetime()imagefields.image()listfields.repeater({ fields })objectfields.group({ fields })relationfields.relation({ to })Puis poussez le schéma :
menestrel sync(le diff s’affiche avant application). -
Importez le contenu
Terminal window menestrel import --dry-run # scanne et mappe, n'écrit rienmenestrel import # entrées, puis images, puis publicationL’import lit le frontmatter et le corps de vos markdown, envoie les images référencées, attend leur traitement et publie. Les fichiers localisés (
title.fr, fichiers suffixés) arrivent en locales par champ. -
Basculez le rendu
Vos templates lisent déjà
getCollection(): ils continuent exactement pareil, à travers le loader Menestrel. Remplacez les<img>directs de fichiers du dépôt par<CmsImage />et le rendu markdown par<RichText />, puis :Terminal window menestrel pull && npm run build -
Nettoyez
Supprimez
public/admin/,config.ymlet le backend git-gateway. Vos éditeurs se connectent désormais à votre admin Menestrel ; le dépôt cesse de recevoir des commits de contenu.