Ghost & Astro
Ghost est un système de gestion de contenu open-source, headless, construit sur Node.js.
Intégration avec Astro
Dans cette section, nous utiliserons l’API Ghost content API pour intégrer vos données dans votre projet Astro.
Prérequis
Pour commencer, vous devez disposer des éléments suivants :
-
Un projet Astro - Si vous n’avez pas encore de projet Astro, notre Guide d’installation vous permettra d’être opérationnel en un rien de temps.
-
Un site Ghost - Nous supposons que vous avez un site configuré avec Ghost. Si ce n’est pas le cas, vous pouvez en configurer un sur un environnement local.
-
Clé API de contenu - Vous pouvez effectuer une intégration dans les
Settings > Integrations
de votre site. A partir de là, vous pouvez trouver votreContent API key
Configuration des informations d’identification
Pour ajouter les identifiants de votre site à Astro, créez un fichier .env
à la racine de votre projet avec la variable suivante :
Maintenant, vous devriez être capable d’utiliser cette variable d’environnement dans votre projet.
Si vous voulez avoir IntelliSense pour votre variable d’environnement, vous pouvez créer un fichier env.d.ts
dans le répertoire src/
et configurer ImportMetaEnv
comme ceci :
En savoir plus sur l’utilisation des variables d’environnement at les fichiers .env
dans Astro.
Votre répertoire racine doit maintenant contenir ces nouveaux fichiers :
Répertoiresrc/
- env.d.ts
- .env
- astro.config.mjs
- package.json
Installation des dépendances
Pour se connecter à Ghost, installez l’API de contenu officielle @tryghost/content-api
en utilisant la commande ci-dessous pour votre gestionnaire de paquets préféré :
Créer un blog avec Astro et Ghost
Avec la configuration ci-dessus, vous êtes maintenant en mesure de créer un blog qui utilise Ghost comme CMS.
Prérequis
- A blog Ghost
- Un projet Astro intégré à l’API de contenu Ghost - Voir intégration avec Astro pour plus de détails sur la façon de configurer un projet Astro avec Ghost.
Cet exemple crée une page d’index qui répertorie les articles avec des liens vers des pages individuelles générées dynamiquement.
Récupération de données
Vous pouvez récupérer les données de votre site avec l’API de contenu de Ghost.
Tout d’abord, créez un fichier ghost.ts
dans un répertoire lib
.
Répertoiresrc/
Répertoirelib/
- ghost.ts
Répertoirepages/
- index.astro
- astro.config.mjs
- package.json
Initialiser une instance API avec l’API Ghost en utilisant la clé API de la page Intégrations du tableau de bord Ghost.
Afficher une liste d’articles
La page src/pages/index.astro
affichera une liste d’articles, chacun avec une description et un lien vers sa propre page.
Répertoiresrc/
- …
Répertoirelib/
- ghost.ts
Répertoirepages/
- index.astro
- astro.config.mjs
- package.json
Importez ghostClient()
dans le frontmatter Astro pour utiliser la méthode posts.browse()
afin d’accéder aux articles du blog depuis Ghost. Définissez limit : all
pour récupérer tous les articles.
La recherche via l’API de contenu renvoie un tableau d’objets contenant les propriétés de chaque article telles que :
title
- le titre de l’articlehtml
- le rendu HTML du contenu de l’articlefeature_image
- l’URL source de l’image vedette de l’articleslug
- le nom de l’article.
Utilisez le tableau posts
renvoyé par la recherche pour afficher une liste d’articles de blog sur la page.
Génération des pages
La page src/pages/post/[slug].astro
génère dynamiquement une page pour chaque post.
Répertoiresrc/
- …
Répertoirelib/
- ghost.ts
Répertoirepages/
- index.astro
Répertoirepost/
- [slug].astro
- astro.config.mjs
- package.json
Importez ghostClient()
pour accéder aux articles de blogs en utilisant posts.browse()
et renvoyer un article en tant que props à chacune de vos routes dynamiques.
Créez le modèle pour chaque page en utilisant les propriétés de chaque objet post
.
<Fragment />
est un composant Astro intégré qui vous permet d’éviter un élément wrapper inutile. Cela peut être particulièrement utile lorsque vous récupérez du HTML à partir d’un CMS (par exemple Ghost ou WordPress).
Publier votre site
Pour déployer votre site, consultez notre guide de déploiement et suivez les instructions de votre hébergeur préféré.
Ressources communautaires
- Vous pouvez démarrer avec le Kit de démarrage Astro + Ghost.
- Andre Carrera a écrit un article de blog montrant comment utiliser le SDK de Ghost pour intégrer des messages et des aperçus dans votre projet Astro.