Créer une page répertoriant les étiquettes
Maintenant que vous avez des pages individuelles pour chaque étiquette, créons des liens vers elles.
Préparez-vous à…
- Ajoutez une nouvelle page en utilisant le modèle de routage
/pages/dossier/index.astro
- Affichez une liste de toutes vos étiquettes uniques, en créant des liens vers chaque page d’étiquette
- Mettez à jour votre site avec des liens de navigation vers cette nouvelle page d’étiquettes
Utilisez le modèle de routage /pages/dossier/index.astro
Titre de la section Utilisez le modèle de routage /pages/dossier/index.astroPour ajouter une page répertoire d’étiquettes à votre site web, vous pourriez créer un nouveau fichier à src/pages/tags.astro
.
Mais, comme vous avez déjà le dossier /tags/
, vous pouvez profiter d’un autre modèle de routage dans Astro et regrouper tous vos fichiers liés aux étiquettes ensemble.
Essayez par vous-même - Créer une page répertoriant les étiquettes
Titre de la section Essayez par vous-même - Créer une page répertoriant les étiquettes-
Créez un nouveau fichier
index.astro
dans le dossiersrc/pages/tags/
. -
Accédez à
http://localhost:4321/tags
et vérifiez que votre site contient désormais une page à cette URL. Elle sera vide, mais elle existera. -
Créez une page minimale à
src/pages/tags/index.astro
qui utilise votre mise en page. Vous avez déjà fait cela auparavant !Cliquez pour voir les étapes
-
Créez un nouveau composant de page dans
src/pages/tags/
.Afficher le nom du fichier
-
Importez et utilisez votre
<BaseLayout>
.Afficher le code
-
Définissez un titre de page et transmettez-le à votre mise en page en tant qu’attribut de composant.
Afficher le code
-
-
Vérifiez à nouveau votre aperçu dans le navigateur, et vous devriez avoir une page formatée, prête à ajouter du contenu !
Créez un tableau d’étiquettes
Titre de la section Créez un tableau d’étiquettesVous avez déjà affiché des éléments dans une liste à partir d’un tableau en utilisant map()
. À quoi cela ressemblerait-il de définir un tableau de toutes vos étiquettes, puis de les afficher dans une liste sur cette page ?
Voir le code
Vous pourriez le faire, mais alors vous devriez revenir sur ce fichier et mettre à jour votre tableau à chaque fois que vous utilisez une nouvelle étiquette dans un futur article de blog.
Heureusement, vous savez déjà comment récupérer les données de tous vos fichiers Markdown en une seule ligne de code, puis renvoyer une liste de toutes vos étiquettes.
-
Dans
src/pages/tags/index.astro
, ajoutez la ligne de code au script frontmatter qui donnera à votre page accès aux données de chaque fichier de blog.md
.Voir le code
-
Ensuite, ajoutez la ligne de code JavaScript suivante à votre composant de page. Il s’agit du même code que nous avons utilisé dans
src/pages/tags/[tag].astro
pour renvoyer une liste d’étiquettes uniques.
Créez votre liste d’étiquettes
Titre de la section Créez votre liste d’étiquettesAu lieu de créer des éléments dans une liste non ordonnée cette fois-ci, créez un <p>
pour chaque élément, à l’intérieur d’un <div>
. Le modèle devrait vous sembler familier !
-
Ajoutez le code suivant à votre modèle de composant :
Dans votre aperçu dans le navigateur, vérifiez que vous pouvez voir vos étiquettes répertoriées.
-
Pour que chaque étiquette renvoie à sa propre page, ajoutez le lien
<a>
suivant à chaque étiquette unique :
Ajoutez des styles à votre liste d’étiquettes
Titre de la section Ajoutez des styles à votre liste d’étiquettes-
Ajoutez les classes CSS suivantes pour styliser à la fois votre
<div>
et chaque<p>
qui sera généré. Remarque : Astro utilise la syntaxe HTML pour ajouter des noms de classe ! -
Définissez ces nouvelles classes CSS en ajoutant la balise
<style>
suivante à cette page : -
Vérifiez l’aperçu dans le navigateur à
http://localhost:4321/tags
pour vérifier que vous avez de nouveaux styles et que chacune des étiquettes de la page a un lien fonctionnel vers sa propre page d’étiquette individuelle.
Validation du code
Titre de la section Validation du codeVoici à quoi devrait ressembler votre nouvelle page :
Ajoutez cette page à votre navigation
Titre de la section Ajoutez cette page à votre navigationActuellement, vous pouvez naviguer vers http://localhost:4321/tags
et voir cette page. À partir de cette page, vous pouvez cliquer sur des liens vers vos pages d’étiquettes individuelles.
Cependant, vous devez toujours rendre ces pages accessibles depuis d’autres pages de votre site web.
-
Dans votre composant
Navigation.astro
, incluez un lien vers cette nouvelle page répertoriant vos étiquettes.Affichez-moi le code
Défi : Inclure les étiquettes dans la mise en page de vos articles de blog
Titre de la section Défi : Inclure les étiquettes dans la mise en page de vos articles de blogVous avez maintenant écrit tout le code dont vous avez besoin pour afficher également une liste d’étiquettes sur chaque article de blog, et les lier à leurs pages d’étiquettes. Vous avez du travail existant que vous pouvez réutiliser !
Suivez les étapes ci-dessous, puis vérifiez votre travail en le comparant à l’exemple de code final.
-
Copiez le
<div class="tags">...</div>
et le<style>...</style>
depuissrc/pages/tags/index.astro
et réutilisez-les à l’intérieur deMarkdownPostLayout.astro
:
Avant que ce code ne fonctionne, vous devez apporter une petite modification au code que vous avez collé dans MarkdownPostLayout.astro
. Pouvez-vous deviner ce que c’est ?
Donnez-moi un indice
Comment les autres props (par exemple, le titre, l’auteur, etc.) sont-elles écrites dans votre modèle de mise en page ? Comment votre mise en page reçoit-elle les props d’un article de blog individuel ?
Donnez-moi un autre indice !
Pour utiliser les props (valeurs passées) d’un article de blog en Markdown dans votre mise en page, comme les étiquettes, vous devez préfixer la valeur avec un certain mot.
Affichez-moi le code !
Validation du code : MarkdownPostLayout
Titre de la section Validation du code : MarkdownPostLayoutPour vérifier votre travail, ou si vous voulez simplement un code complet et correct à copier dans MarkdownPostLayout.astro
, voici à quoi devrait ressembler votre composant Astro :
Testez vos connaissances
Titre de la section Testez vos connaissancesAssociez chaque chemin de fichier à un deuxième chemin de fichier qui créera une page à la même route.
-
src/pages/categories.astro
-
src/pages/posts.astro
-
src/pages/products/shoes/index.astro