Создание и передача данных в пользовательский макет блога
Теперь, когда у вас есть макет для ваших страниц, давайте добавим макет для постов в блоге!
Приготовьтесь…
- Создать новый макет для постов блога на основе Markdown файлов
- Передавать значения YAML frontmatter в виде свойств в макет компонентов
Добавление макета для постов блога
Заголовок раздела Добавление макета для постов блогаКогда вы добавляете свойство layout
в frontmatter в файле .md
, все значения ваших frontmatter YAML становятся доступными для файла макета.
-
Создайте новый файл в
src/layouts/MarkdownPostLayout.astro
-
Скопируйте следующий код в
MarkdownPostLayout.astro
-
Добавьте следующее свойство frontmatter в
post-1.md
-
Проверьте свой проект в браузере по адресу
http://localhost:4321/posts/post-1
и обратите внимание, что макет добавился на вашу страницу. -
Добавьте то же свойство макета к вашим двум другим постам блога (
post-2.md
иpost-3.md
). Проверьте в вашем браузере, что макет также применен к этим постам.
Когда используете макеты, теперь вы можете включать элементы, такие как заголовок страницы, в контент Markdown или в макет. Не забудьте визуально проверить предварительный просмотр страницы и внести любые необходимые корректировки, чтобы избежать дублирования элементов.
Попробуйте сами — Настройте макет вашего блога
Заголовок раздела Попробуйте сами — Настройте макет вашего блогаЗадача: Идентифицируйте элементы, общие для каждого поста блога, и используйте MarkdownPostLayout.astro
для их отображения, вместо написания их в вашем Markdown в post-1.md
и в каждом будущем посте.
Вот пример рефакторинга вашего кода для включения pubDate
в компонент макета, а не для написания его в основном тексте вашего Markdown:
Отрефакторите столько, сколько считаете нужным, и добавьте столько в свой макет, сколько хотите, помня, что все, что вы добавляете в свой макет, это на одну вещь меньше, чем вы напишете в каждой статье блога!
Вот пример отрефакторенного макета, который оставляет только контент отдельного блога, отображаемого слотом. Не стесняйтесь использовать это или создать свое!
Все, что отображается вашим макетом, не нужно вводить в ваш пост в блоге! Если вы заметите какое-либо дублирование, когда проверяете предварительный просмотр в браузере, обязательно удалите контент из файла Markdown.
Проверьте свои знания
Заголовок раздела Проверьте свои знанияВы можете разобраться, что должно быть в пробелах, чтобы следующие два компонента вместе создали рабочий код Astro?
-
Покажите заполненные пробелы!
Чек-лист
Заголовок раздела Чек-листРесурсы
Заголовок раздела Ресурсы-
Введение в YAML внешняя ссылка