Decap CMS & Astro
Decap CMS (anciennement Netlify CMS) est un système de gestion de contenu open-source basé sur Git.
Decap vous permet de profiter pleinement de toutes les fonctionnalités d’Astro, y compris l’optimisation des images et les collections de contenu.
Decap ajoute une route (typiquement /admin
) à votre projet qui chargera une application React pour permettre aux utilisateurs autorisés de gérer le contenu directement depuis le site web déployé. Decap validera les changements directement dans le dépôt source de votre projet Astro.
Installation de DecapCMS
Titre de la section Installation de DecapCMSIl existe deux options pour ajouter Decap à Astro :
-
Installer Decap via un gestionnaire de paquets avec la commande suivante :
Fenêtre du terminal npm install decap-cms-appFenêtre du terminal pnpm add decap-cms-appFenêtre du terminal yarn add decap-cms-app -
Importez le paquet dans une balise
<script>
placé dans le<body>
de votre page./admin <body><!-- Inclure le script qui génère la page et alimente Decap CMS --><script src="https://unpkg.com/decap-cms@^3.1.2/dist/decap-cms.js"></script></body>
Configuration
Titre de la section Configuration-
Créez un dossier d’administration statique dans
public/admin/
-
Ajoutez
config.yml
àpublic/admin/
:Répertoirepublic
Répertoireadmin
- config.yml
-
Pour ajouter la prise en charge des collections de contenu, configurez chaque schéma dans
config.yml
. L’exemple suivant configure une collectionblog
, en définissant unlabel
pour la propriété frontmatter de chaque entrée :/public/admin/config.yml collections:- name: "blog" # Utilisé dans les routes, par exemple, /admin/collections/bloglabel: "Blog" # Utilisé dans l'UIfolder: "src/content/blog" # Chemin d'accès au dossier dans lequel les documents sont conservéscreate: true # Permettre aux utilisateurs de créer de nouveaux documents dans cette collectionfields: # Les champs de chaque document, généralement en tête de page- { label: "Mise en page", name: "layout", widget: "hidden", default: "blog" }- { label: "Titre", name: "title", widget: "string" }- { label: "Date de publication", name: "date", widget: "datetime" }- { label: "Image mise en avant", name: "thumbnail", widget: "image" }- { label: "Note (sur une échelle de 1 à 5)", name: "rating", widget: "number" }- { label: "Corps", name: "body", widget: "markdown" } -
Ajoutez la route
admin
pour votre application React danssrc/pages/admin.html
.Répertoirepublic
Répertoireadmin
- config.yml
Répertoiresrc
Répertoirepages
- admin.html
/src/pages/admin.html <!doctype html><html lang="fr"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="robots" content="noindex" /><link href="/admin/config.yml" type="text/yaml" rel="cms-config-url" /><title>Gestionnaire de contenu</title></head><body><script src="https://unpkg.com/decap-cms@^3.1.2/dist/decap-cms.js"></script></body></html> -
Pour permettre le téléchargement de médias dans un dossier spécifique via l’éditeur Decap, ajoutez un chemin d’accès approprié :
/public/admin/config.yml media_folder: "src/assets/images" # Emplacement où les fichiers seront stockés dans le dépôtpublic_folder: "src/assets/images" # L'attribut src pour les médias téléchargés
Consultez la documentation de configuration du CMS Decap pour des instructions et des options complètes.
Utilisation
Titre de la section UtilisationNaviguez vers votresite.com/admin/
pour utiliser l’éditeur de Decap CMS.
Authentification
Titre de la section AuthentificationDecap CMS avec Netlify Identity
Titre de la section Decap CMS avec Netlify IdentityDecap CMS a été développé à l’origine par Netlify et dispose d’une prise en charge de première classe pour Netlify Identity.
Lors du déploiement sur Netlify, configurez l’identité de votre projet via le tableau de bord de Netlify et incluez le widget Identity de Netlify sur la route admin
de votre projet. Incluez éventuellement le widget Identity sur la page d’accueil de votre site si vous prévoyez d’inviter de nouveaux utilisateurs par e-mail.
Decap CMS avec des clients OAuth externes
Titre de la section Decap CMS avec des clients OAuth externesLorsque vous déployez vers des hébergeurs autres que Netlify, vous devez créer vos propres routes OAuth.
Dans Astro, cela peut être fait avec des routes rendues à la demande dans votre projet configuré avec un adaptateur activé.
Voir Decap’s OAuth Docs pour une liste de clients OAuth compatibles maintenus par la communauté.
Ressources communautaires
Titre de la section Ressources communautaires-
Modèle Netlify Identity : astro-decap-ssg-netlify (Anglais)
-
Rendu à la demande des routes OAuth avec un modèle Astro : astro-decap-starter-ssr (Anglais)
-
Article de blog : Créez le contenu de votre site Astro avec des CMS basés sur Git (Anglais) par Aftab Alam
-
Tutoriel Youtube : Créez un blog personnalisé avec Astro et NetlifyCMS en quelques minutes (Anglais) par Kumail Pirzada
Sites en production
Titre de la section Sites en productionLes sites suivants utilisent Astro + Decap CMS en production :
- yunielacosta.com par Yuniel Acosta - code source sur GitHub (Netlify CMS)
- portfolioris.nl par Joris Hulsbosch - code source sur GitHub