Añade contenido dinámico sobre ti
Ahora que ya tienes un sitio web multipágina con contenido HTML, ¡es hora de añadir algo de HTML dinámico!
Prepárate para...
- Definir el título de tu página en el frontmatter y utilízarlo en tu HTML
- Mostrar elementos HTML condicionalmente
- Añadir algo de contenido sobre ti
Cualquier archivo HTML es un lenguaje de Astro válido. Pero con Astro puedes hacer mucho más que HTML normal.
Define y utiliza una variable
Sección titulada Define y utiliza una variableAbre about.astro
que debería tener este aspecto:
-
Añade la siguiente línea de JavaScript en el script frontmatter, entre las vallas de código:
-
Sustituye tanto el título estático “Astro” como el encabezado “Sobre mi” en tu HTML por la variable dinámica
{pageTitle}
. -
Actualiza la vista previa en directo de tu página
/about
.El texto de tu página debería tener el mismo aspecto, y el título de tu página mostrado en la pestaña de tu navegador debería decir ahora “Sobre mí” en lugar de “Astro”.
En lugar de escribir el texto directamente en las etiquetas HTML, acabas de definir y luego utilizar una variable en las dos secciones de tu archivo
.astro
, respectivamente. -
Utiliza el mismo patrón para crear un valor
pageTitle
que utilizarás enindex.astro
(“Página de inicio”) yblog.astro
(“Mi blog de Astro aprendizaje”). Actualiza el HTML de estas páginas en ambos sitios para que el título de tu página coincida con el encabezado que aparece en cada página.
- Define variables en tu script de Astro usando expresiones JavaScript o TypeScript.
- Usa estas variables en tu plantilla de Astro dentro de llaves
{ }
para decirle a Astro que estás usando algo de JavaScript.
Escribe expresiones JavaScript en Astro
Sección titulada Escribe expresiones JavaScript en Astro-
Añade el siguiente JavaScript a tu frontmatter, entre las vallas de código:
(Puedes personalizar el código tú mismo, pero este tutorial utilizará el siguiente ejemplo.)
-
A continuación, añade el siguiente código a tu plantilla HTML, debajo del contenido existente:
- Escribir una plantilla Astro es muy parecido a escribir HTML, pero puedes incluir expresiones JavaScript dentro de ella.
- El script Astro frontmatter sólo contiene JavaScript.
- Puedes utilizar todos los operadores lógicos, expresiones y funciones modernos de JavaScript en cualquier sección de tu archivo
.astro
. Sin embargo, las llaves son necesarias (sólo) en el cuerpo de la plantilla HTML.
Pon a prueba tus conocimientos
Sección titulada Pon a prueba tus conocimientos-
La portada de un archivo
.astro
se escribe en: -
Además de HTML, la sintaxis Astro permite incluir:
-
¿Cuándo hay que escribir JavaScript entre llaves?
Renderización condicional de elementos
Sección titulada Renderización condicional de elementosTambién puedes usar tus variables de script para elegir si renderizar o no elementos individuales de tu contenido HTML <body>
.
-
Añade las siguientes líneas a tu script frontmatter para definir variables:
-
Añade las siguientes líneas debajo de los párrafos existentes.
A continuación, comprueba la vista previa en directo en la pestaña de tu navegador para ver lo que se muestra en la página:
-
Confirma tus cambios en GitHub antes de continuar. Haz esto cada vez que deseas guardar tu trabajo y actualizar tu sitio web en vivo.
La sintaxis de plantillas de Astro es similar a la sintaxis JSX. Si alguna vez te preguntas cómo usar tu script en tu HTML, ¡buscar cómo se hace en JSX es probablemente un buen punto de partida!
Analiza el patrón
Sección titulada Analiza el patrónDado el siguiente script .astro
:
Para cada expresión de la plantilla de Astro, ¿puedes predecir el HTML (¡si lo hay!) que se enviará al navegador? Haz clic para ver si has acertado.
-
<p>{operatingSystem}</p>
-
{student && <p>Sigo estudiando.</p>}
-
<p>Tengo {quantity + 8} pares de {footwear}</p>
-
{operatingSystem === "MacOS" ? <p>Utilizo un Mac.</p> : <p>No utilizo un Mac.</p>}