Ajoutez du contenu dynamique vous concernant
Maintenant que vous avez un site web multi-pages avec du contenu HTML, ajoutons un peu de HTML dynamique !
Préparez-vous à…
- Définir le titre de votre page dans le frontmatter, et l’utiliser dans votre HTML
- Afficher conditionnellement des éléments HTML
- Ajouter des informations vous concernant
N’importe quel fichier HTML est valide en tant que langage Astro. Mais, vous pouvez faire plus avec Astro qu’avec un HTML classique !
Définir et utiliser une variable
Titre de la section Définir et utiliser une variableOuvrez about.astro
, qui devrait ressembler à ceci :
-
Ajoutez la ligne de code JavaScript suivante dans le script du frontmatter, entre les barres de code :
-
Remplacez à la fois le titre statique “Astro” et “À propos de moi” dans votre HTML par la variable dynamique
{pageTitle}
. -
Actualisez l’aperçu en direct de votre page
/about
.Le texte de votre page devrait rester le même, et le titre de la page affiché dans l’onglet de votre navigateur devrait maintenant indiquer “À propos de moi” au lieu de “Astro”.
Au lieu de taper du texte directement dans les balises HTML, vous avez simplement défini puis utilisé une variable dans les deux sections de votre fichier
.astro
, respectivement. -
Utilisez le même modèle pour créer une valeur
pageTitle
à utiliser dansindex.astro
(“Page d’accueil”) etblog.astro
(“Mon blog d’apprentissage Astro”). Mettez à jour le HTML de ces pages aux deux endroits pour que le titre de la page corresponde à l’en-tête affiché sur chaque page.
- Définissez des variables dans votre script Astro en utilisant des expressions JavaScript ou TypeScript.
- Utilisez ces variables dans votre modèle Astro entre des accolades
{}
pour indiquer à Astro que vous utilisez un peu de JavaScript.
Écrire des expressions JavaScript dans Astro
Titre de la section Écrire des expressions JavaScript dans Astro-
Ajoutez le code JavaScript suivant à votre script du frontmatter, entre les barres de code :
(Vous pouvez personnaliser le code à votre convenance, mais ce tutoriel utilisera l’exemple suivant.)
-
Ensuite, ajoutez le code suivant à votre modèle HTML, en dessous de votre contenu existant :
- Rédiger un modèle Astro ressemble beaucoup à rédiger du HTML, mais vous pouvez inclure des expressions JavaScript à l’intérieur.
- Le script du frontmatter Astro ne contient que du JavaScript.
- Vous pouvez utiliser tous les opérateurs logiques, les expressions et les fonctions modernes JavaScript dans l’une ou l’autre section de votre fichier
.astro
. Mais, les accolades sont nécessaires (uniquement) dans le corps du modèle HTML.
Testez vos connaissances
Titre de la section Testez vos connaissances-
Le frontmatter d’un fichier
.astro
est écrit en : -
En plus du HTML, la syntaxe d’Astro vous permet d’inclure :
-
Quand devez-vous écrire votre JavaScript entre des accolades ?
Rendre des éléments de manière conditionnelle
Titre de la section Rendre des éléments de manière conditionnelleVous pouvez également utiliser vos variables du script pour choisir d’afficher ou non des éléments individuels du contenu HTML de votre <body>
.
-
Ajoutez les lignes suivantes à votre script du frontmatter pour définir des variables :
-
Ajoutez ensuite les lignes suivantes en dessous de vos paragraphes existants.
Ensuite, vérifiez l’aperçu en direct dans l’onglet de votre navigateur pour voir ce qui est affiché sur la page :
-
Envoyez vos modifications sur GitHub avant de passer à la suite. Faites-le à chaque fois que vous souhaitez sauvegarder votre travail et mettre à jour votre site web en direct.
La syntaxe de templating d’Astro ressemble à la syntaxe JSX. Si vous vous demandez comment utiliser votre script dans votre HTML, alors chercher comment cela se fait en JSX est probablement un bon point de départ !
Analysez le modèle
Titre de la section Analysez le modèleÉtant donné le script Astro suivant :
Pour chaque expression du modèle Astro suivante, pouvez-vous prédire le HTML (le cas échéant !) qui sera envoyé au navigateur ? Cliquez pour révéler si vous avez raison !
-
<p>{operatingSystem}</p>
-
{student && <p>Je suis encore à l'école.</p>}
-
<p>J'ai {quantity + 8} paires de {footwear}</p>
-
{operatingSystem === "MacOS" ? <p>J'utilise un Mac.</p> : <p>Je n'utilise pas un Mac.</p>}