Разделы контента
Раздел - это набор страниц, который определяется на основе организационной структуры в каталоге content/
.
По умолчанию все каталоги первого уровня в разделе content/
образуют свои собственные разделы (корневые разделы).
Если пользователю необходимо определить раздел foo
на более глубоком уровне, ему нужно создать каталог с именем foo
с файлом _index.md
(смотрите связки веток для получения дополнительной информации).
Вложенные разделы
Разделы могут быть вложены настолько глубоко, насколько Вам нужно.
content
└── blog <-- Section, because first-level dir under content/
├── funny-cats
│ ├── mypost.md
│ └── kittens <-- Section, because contains _index.md
│ └── _index.md
└── tech <-- Section, because contains _index.md
└── _index.md
Важно понимать, что для того, чтобы дерево разделов было полностью навигационным, по крайней мере, для самого нижнего раздела требуется файл содержимого. (например, _index.md
).
Пример: Навигация по хлебным крошкам
С помощью доступных переменных и методов раздела Вы можете создать мощную навигацию. Одним из распространенных примеров может быть частичное отображение навигации хлебных крошек:
<ol class="nav navbar-nav">
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
</ol>
{{ define "breadcrumbnav" }}
{{ if .p1.Parent }}
{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
{{ else if not .p1.IsHome }}
{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
{{ end }}
<li{{ if eq .p1 .p2 }} class="active"{{ end }}>
<a href="{{ .p1.Permalink }}">{{ .p1.Title }}</a>
</li>
{{ end }}
Переменные и методы страницы раздела
Смотрите также переменные страницы.
- .CurrentSection
- The page’s current section. The value can be the page itself if it is a section or the homepage.
- .FirstSection
- The page’s first section below root, e.g.
/docs
,/blog
etc. - .InSection $anotherPage
- Whether the given page is in the current section.
- .IsAncestor $anotherPage
- Whether the current page is an ancestor of the given page.
- .IsDescendant $anotherPage
- Whether the current page is a descendant of the given page.
- .Parent
- A section’s parent section or a page’s section.
- .Section
- The section this content belongs to. Note: For nested sections, this is the first path element in the directory, for example,
/blog/funny/mypost/ => blog
. - .Sections
- The sections below this content.
Списки разделов контента
Hugo автоматически создаст страницы для каждого корневого раздела, на котором будет перечислено все содержимое этого раздела. Смотрите документацию по шаблонам раздела для получения подробной информации о настройке способа отображения этих страниц.
Контент Раздел vs Контент Тип
По умолчанию все, что создано в разделе, будет использовать контент type
, который соответствует имени корневого раздела. Например, Хьюго предположит, что posts/post-1.md
имеет контент posts
типа type
. Если Вы используете архитипы для своего раздела posts
, Hugo сгенерирует главный материал в соответствии с тем, что он находит в archetypes/posts.md
.