Пакеты страниц
Пакеты страниц - это способ группировки ресурсов страницы.
Пакет страниц может быть одним из:
- Leaf Bundle (лист означает, что у него нет детей)
- Branch Bundle (домашняя страница, раздел, термины таксономии, список таксономии)
Leaf Bundle | Branch Bundle | |
---|---|---|
Применение | Сборник контента и вложений для отдельных страниц | Сборник вложений для страниц раздела (домашняя страница, раздел, термины таксономии, список таксономии) |
Имя индексного файла | index.md 1 |
_index.md 1 |
Разрешенные ресурсы | Страничные и нестраничные (например, изображения, pdf и т.д.) типы | Только нестраничные (например, изображения, pdf и т.д.) типы |
Где могут жить Ресурсы? | На любом уровне каталога в каталоге конечного пакета. | Только на уровне каталога для каталога пакета ветки, т.е. каталога, содержащего _index.md (ref). |
Тип макета | single |
list |
Вложенность | Не допускает вложения под ним большего количества связок | Позволяет класть под себя пакеты leaf или branch |
Пример | content/posts/my-post/index.md |
content/posts/_index.md |
Контент из файлов неиндексных страниц … | Доступно только как ресурсы страницы | Доступно только как обычные страницы |
Leaf Bundles
Leaf Bundle - это каталог любой иерархии в каталоге content/
, содержащий файл index.md
.
Примеры организации Leaf Bundle
content/
├── about
│ ├── index.md
├── posts
│ ├── my-post
│ │ ├── content1.md
│ │ ├── content2.md
│ │ ├── image1.jpg
│ │ ├── image2.png
│ │ └── index.md
│ └── my-other-post
│ └── index.md
│
└── another-section
├── ..
└── not-a-leaf-bundle
├── ..
└── another-leaf-bundle
└── index.md
В приведенном выше примере каталога content/
есть четыре leaf bundles:
- about
- Этот листовой пакет находится на корневом уровне (непосредственно в каталоге
content
) и имеет толькоindex.md
. - my-post
- Этот листовой пакет содержит
index.md
, два других файла разметки содержимого и два файла изображений. - image1
- Это изображение является ресурсом страницы
my-post
и доступно только в ресурсахmy-post/index.md
. - image2
- Это изображение является ресурсом страницы
my-post
и доступно только в ресурсахmy-post/index.md
. - my-other-post
- Этот листовой пакет содержит только файл
index.md
. - another-leaf-bundle
- Этот листовой пакет вложен в несколько каталогов. В этом комплекте также есть только
index.md
.
Headless Bundle
Безголовый пакет - это пакет, который настроен так, чтобы нигде не публиковаться:
- В нем не будет
Permalink
и обработанного HTML вpublic/
. - Он не будет частью
.Site.RegularPages
и т.д.
Но Вы можете получить его с помощью .Site.GetPage
. Вот пример:
{{ $headless := .Site.GetPage "/some-headless-bundle" }}
{{ $reusablePages := $headless.Resources.Match "author*" }}
<h2>Authors</h2>
{{ range $reusablePages }}
<h3>{{ .Title }}</h3>
{{ .Content }}
{{ end }}
В этом примере мы предполагаем, что some-headless-bundle
представляет собой комплект без заголовка, содержащий один или несколько ресурсов страницы, чей .Name
совпадает с "author*"
.
Пояснение к приведенному выше примеру:
- Получите “объект” страницы
some-headless-bundle
. - Соберите кусок ресурсов в этом Пакете страницы, который соответствует
"author*"
, используя.Resources.Match
. - Прокрутите этот кусок вложенных страниц и выведите их
.Title
и.Content
.
Связку листьев можно сделать безголовой, добавив ниже во Front Matter (в index.md
):
headless = true
Есть много вариантов использования таких пакетов страниц без заголовка:
- Общие медиа-галереи
- Многоразовые “снипеты” содержания страницы
Branch Bundles
Branch Bundle - это любой каталог в любой иерархии внутри каталога content/
, который содержит как минимум файл _index.md
.
Этот _index.md
также может находиться непосредственно в каталоге content/
.
Примеры организации Branch Bundle
content/
├── branch-bundle-1
│ ├── branch-content1.md
│ ├── branch-content2.md
│ ├── image1.jpg
│ ├── image2.png
│ └── _index.md
└── branch-bundle-2
├── _index.md
└── a-leaf-bundle
└── index.md
В приведенном выше примере каталога content/
есть два пакета ветвей (и пакет листьев):
branch-bundle-1
- В этом пакете веток есть
_index.md
, два других файла разметки с контентом и два файла изображений. branch-bundle-2
- В этом пакете веток есть
_index.md
и вложенный листовой комплект.
-
Расширение
.md
- это просто пример. Расширением может быть.html
,.json
или любой допустимый тип MIME. ↩︎