Добавление динамического контента о себе
Теперь, когда у вас есть многостраничный сайт с HTML-контентом, давайте добавим немного динамического HTML!
Приготовьтесь к...
- Определить заголовок вашей страницы в Frontmatter и использовать его в вашем HTML.
- Условно отобразить HTML-элементы.
- Добавить немного контента обо мне.
Любой HTML-файл допустим на языке Astro. Но вы можете делать больше, чем просто HTML с Astro!
Определите и использовать переменную
Раздел, озаглавленный Определите и использовать переменнуюОткройте about.astro, который должен выглядеть так:
---
---<html lang="ru">  <head>    <meta charset ="utf-8" />    <meta name="viewport" content="width=device-width" />    <title>Astro</title>  </head>  <body>    <a href="/">Главная</a>    <a href="/about/">Обо мне</a>    <a href="/blog/">Блог</a>    <h1>Обо мне</h1>    <h2>… и моём новом сайт на Astro!</h2>
    <p>Я изучаю введение об Astro. Это вторая страница на моем сайте, и это первая, которую я построил самостоятельно!</p>
    <p>Этот сайт будет обновляться по мере того, как я буду проходить больше уроков, поэтому продолжайте проверять его и следите за тем, как идет мой путь!</p>  </body></html>- 
Добавьте следующую строку JavaScript в скрипт frontmatter, между разделителями кода ( ---):src/pages/about.astro ---const pageTitle = "Обо мне";---
- 
Замените статический заголовок «Astro» и заголовок «Обо мне» на вашем HTML на динамическую переменную {pageTitle}.src/pages/about.astro <html lang="ru"><head><meta charset ="utf-8" /><meta name="viewport" content="width=device-width" /><title>Astro</title><title>{pageTitle}</title></head><body><a href="/">Главная</a><a href="/about/">Обо мне</a><a href="/blog/">Блог</a><h1>Обо мне</h1><h1>{pageTitle}</h1><h2>… и моём новом сайт на Astro!</h2><p>Я изучаю введение об Astro. Это вторая страница на моем сайте, и это первая, которую я построил самостоятельно!</p><p>Этот сайт будет обновляться по мере того, как я буду проходить больше уроков, поэтому продолжайте проверять его и следите за тем, как идет мой путь!</p></body></html>
- 
Обновите живой просмотр вашей страницы /about.Текст вашей страницы должен выглядеть так же, и заголовок вашей страницы, отображаемый во вкладке вашего браузера, теперь должен читаться «Обо мне», а не «Astro». Вместо того, чтобы вводить текст непосредственно в теги HTML, вы только что определили, а затем использовали переменную в двух разделах вашего .astro-файла соответственно.
- 
Используйте тот же шаблон для создания значения pageTitle для использования в index.astro(«Главная страница») иblog.astro(«Мой блог об изучении Astro»). Обновите HTML этих страниц в обоих местах, чтобы ваш заголовок страницы соответствовал заголовку, отображаемому на каждой странице.
- Определите переменные в своем скрипте Astro с помощью выражений JavaScript или TypeScript.
- Используйте эти переменные в вашем шаблоне Astro внутри фигурных скобок , чтобы сообщить Astro, что вы используете некоторый JavaScript.
Напишите выражения JavaScript в Astro
Раздел, озаглавленный Напишите выражения JavaScript в Astro- 
Добавьте следующий JavaScript в свой frontmatter, между разделителем кода: (Вы можете настроить код под себя, но в этом руководстве будет использоваться следующий пример.) src/pages/about.astro ---const pageTitle = "Обо мне";const identity = {firstName: "Николай",country: "Нидерланды",occupation: "Технический автор",hobbies: ["фотография", "дизайн", "тенис"],};const skills = ["HTML", "CSS", "JavaScript", "React", "Astro", "Оптимизация SEO"];---
- 
Затем добавьте следующий код в ваш HTML-шаблон, ниже вашего существующего контента: src/pages/about.astro <p>Вот несколько фактов обо мне:</p><ul><li>Меня зовут {identity.FirstName}.</li><li>Я живу в {identity.country} и работаю в качестве {identity.occupation}.</li>{identity.hobbies.length >= 2 &&<li>Два моих увлечения: {identity.hobbies[0]} и {identity.hobbies[1]}</li>}</ul><p>Мои навыки:</p><ul>{skills.map((skill) => <li>{skill}</li>)}</ul>
- Написание шаблона Astro напоминает написание HTML, но вы можете использовать в нем выражения JavaScript.
- Скрипт frontmatter Astro содержит только JavaScript.
- Вы можете использовать все современные логические операторы, выражения и функции JavaScript в любой секции вашего .astro-файла. Но фигурные скобки необходимы (только) в теле шаблона HTML.
Проверьте свои знания
Раздел, озаглавленный Проверьте свои знания- 
Frontmatter файла .astroнаписан на:
- 
Кроме HTML, синтаксис Astro позволяет включать: 
- 
Когда вам нужно писать свои скрипты на JavaScript в фигурных скобках? 
Условный рендер элементов
Раздел, озаглавленный Условный рендер элементовВы также можете использовать свои скрипты для выбора того, нужно ли выводить отдельные элементы в <body> вашего HTML-контента.
- 
Добавьте следующие строки в свой скрипт Frontmatter, чтобы определить переменные: src/pages/about.astro ---const pageTitle = "Обо мне";const identity = {firstName: "Николай",country: "Нидерланды",occupation: "Технический автор",hobbies: ["фотография", "дизайн", "тенис"],};const skills = ["HTML", "CSS", "JavaScript", "React", "Astro", "Оптимизация SEO"];const happy = true;const finished = false;const goal = 3;---
- 
Добавьте следующие строки ниже ваших существующих абзацев Тогда проверьте живой просмотр на вкладке вашего браузера, чтобы увидеть, что отображается на странице: src/pages/about.astro {happy && <p>Я рад изучать Astro!</p>}{finished && <p>Я закончил этот урок!</p>}{goal === 3 ? <p>Моя цель — закончить за 3 дня.</p> : <p>Моя цель — не 3 дня.</p>}
- 
Фиксируйте изменения на GitHub, прежде чем перейти к следующему шагу. Делайте это в любое время, когда вы хотите сохранить свою работу и обновить ваш сайт. 
Синтаксис шаблона Astro похож на синтаксис JSX. Если вы когда-нибудь задаетесь вопросом, как использовать свой скрипт в вашем HTML, то поиск способа сделать это в JSX, вероятно, хорошая отправная точка!
Анализ шаблона
Раздел, озаглавленный Анализ шаблонаПредположим, дан следующий скрипт .astro:
---const operatingSystem = "Linux";const quantity = 3;const footwear = "кросовок";const student = false;---Для каждого выражения шаблона Astro, ты можешь предсказать HTML (если он есть!), который будет отправлен в браузер? Щелкни, чтобы узнать, прав ли ты!
- 
<p>{operatingSystem}</p>
- 
{student && <p>Я до сих пор учусь в школе</p>}
- 
<p>У меня есть {quantity + 8} пар {footwear}</p>
- 
{operatingSystem === "MacOS" ? <p>Я использую Mac.</p> : <p>Я не использую Mac.</p>}