Hashnode & Astro
Hashnode est un CMS hébergé qui vous permet de créer un blog ou une simple publication.
Intégration avec Astro
Titre de la section Intégration avec AstroL’API Hashnode Public API est une API GraphQL qui vous permet d’interagir avec Hashnode. Ce guide utilise graphql-request
, un client GraphQL minimal qui fonctionne bien avec Astro, pour apporter vos données Hashnode dans votre projet Astro.
Prérequis
Titre de la section PrérequisPour 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 Hashnode - Vous pouvez créer un site personnel gratuit en visitant Hashnode.
Installation des dépendances
Titre de la section Installation des dépendancesInstallez le paquet graphql-request
en utilisant le gestionnaire de paquets de votre choix :
Créer un blog avec Astro et Hashnode
Titre de la section Créer un blog avec Astro et HashnodeCe guide utilise graphql-request
, un client GraphQL minimal qui fonctionne bien avec Astro, pour apporter vos données Hashnode dans votre projet Astro.
Prérequis
Titre de la section Prérequis- Un blog Hashnode
- Un projet Astro intégré avec le paquet graphql-request installé.
Cet exemple va créer une page d’index qui liste les articles avec des liens vers des pages individuelles générées dynamiquement.
Récupération des données
Titre de la section Récupération des données-
Pour récupérer les données de votre site avec le paquet
graphql-request
, créez un répertoiresrc/lib
et créez deux nouveaux fichiersclient.ts
&schema.ts
:Répertoiresrc/
Répertoirelib/
- client.ts
- schema.ts
Répertoirepages/
- index.astro
- astro.config.mjs
- package.json
-
Initialisez une instance API avec le GraphQLClient en utilisant l’URL de votre site web Hashnode.
-
Configurez
schema.ts
pour définir la forme des données renvoyées par l’API Hashnode.
Affichage d’une liste d’articles
Titre de la section Affichage d’une liste d’articlesLa recherche via getAllPosts()
renvoie un tableau d’objets contenant les propriétés de chaque article telles que :
title
- le titre de l’articlebrief
- l’affichage HTML du contenu de l’articlecoverImage.url
- 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érer des pages
Titre de la section Générer des pages-
Créez la page
src/pages/post/[slug].astro
pour générer dynamiquement une page pour chaque post.Répertoiresrc/
- …
Répertoirelib/
- client.ts
- schema.ts
Répertoirepages/
- index.astro
Répertoirepost/
- [slug].astro
- astro.config.mjs
- package.json
-
Importez et utilisez
getAllPosts()
etgetPost()
pour récupérer les données de Hashnode et générer des routes de pages individuelles pour chaque post. -
Créez le modèle pour chaque page en utilisant les propriétés de chaque objet
post
. L’exemple ci-dessous montre le titre de l’article et le temps de lecture, puis le contenu complet de l’article :<Fragment />
est un composant Astro intégré qui vous permet d’éviter un élément wrapper inutile. Cela peut s’avérer particulièrement utile lorsque vous récupérez du HTML à partir d’un CMS (par exemple, Hashnode ou WordPress).
Publier votre site
Titre de la section Publier votre sitePour déployer votre site, consultez notre guide de déploiement et suivez les instructions de votre hébergeur préféré.
Ressources communautaires
Titre de la section Ressources communautairesastro-hashnode
sur GitHub