Spec-Zone.ru › Jekyll 4

Макеты

Макеты — это шаблоны, которые оборачивают ваш контент. Они позволяют разместить исходный код шаблона в одном месте, чтобы не повторять такие элементы, как навигация и подвал, на каждой странице.

Макеты находятся в каталоге _layouts. Обычно используется базовый шаблон, называемый default.html, и другие макеты наследуют от него по мере необходимости.

Каталог макетов

Jekyll ищет каталог _layouts либо в корне вашего сайта source, либо в корне вашей темы.

Хотя вы можете настроить имя каталога, в котором могут находиться ваши макеты, установив ключ layouts_dir в вашем файле конфигурации, сам каталог должен находиться в корне каталога source вашего сайта.

Использование

Первый шаг — размещение исходного кода шаблона в default.html. content — это специальная переменная, значение которой — рендеренный контент поста или страницы, которые он оборачивает.

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{{ page.title }}</title>
    <link rel="stylesheet" href="/css/style.css">
  </head>
  <body>
    <nav>
      <a href="/">Home</a>
      <a href="/blog/">Blog</a>
    </nav>
    <h1>{{ page.title }}</h1>
    <section>
      {{ content }}
    </section>
    <footer>
      &copy; to me
    </footer>
  </body>
</html>

У вас есть полный доступ к данным front matter исходного файла. В примере выше, page.title взято из front matter страницы.

Далее необходимо указать используемый макет в данных front matter вашей страницы. Также можно использовать значения front matter по умолчанию, чтобы не задавать их на каждой странице.

---
title: My First Page
layout: default
---

This is the content of my page

Рендеренный результат этой страницы:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>My First Page</title>
    <link rel="stylesheet" href="/css/style.css">
  </head>
  <body>
    <nav>
      <a href="/">Home</a>
      <a href="/blog/">Blog</a>
    </nav>
    <h1>My First Page</h1>
    <section>
      This is the content of my page
    </section>
    <footer>
      &copy; to me
    </footer>
  </body>
</html>

Наследование

Наследование макетов полезно, когда вы хотите добавить что-то к существующему макету для части документов на вашем сайте. Частый пример — посты блога; возможно, вам нужно отображать дату и автора, но при этом пост должен быть идентичен вашему базовому макету.

Для этого необходимо создать другой макет, который указывает на исходный макет в front matter. Например, этот макет будет находиться в _layouts/post.html:

---
layout: default
---
<p>{{ page.date }} - Written by {{ page.author }}</p>

{{ content }}

Теперь посты могут использовать этот макет, а остальные страницы — по умолчанию.

Переменные

Вы можете устанавливать front matter в макетах, единственное отличие заключается в том, что при использовании Liquid вам нужно использовать переменную layout вместо page. Например:

---
city: San Francisco
---
<p>{{ layout.city }}</p>

{{ content }}

© 2020 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/layouts/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API