Архетипы
Что такое архетипы?
Архетипы - это файлы шаблонов контента в директории архетипов Вашего проекта, которые содержат предварительно сконфигурированный front matter и, возможно, также размещение контента для типов контента Вашего веб-сайта. Они будут использоваться, когда Вы запустите hugo new.
hugo new использует раздел content-section для поиска наиболее подходящего шаблона архетипа в Вашем проекте. Если Ваш проект не содержит файлов архетипа, он также будет искать в теме.
hugo new posts/my-first-post.md
Вышеупомянутое создаст новый файл содержимого в content/posts/my-first-post.md, используя первый найденный файл архетипа:
archetypes/posts.mdarchetypes/default.mdthemes/my-theme/archetypes/posts.mdthemes/my-theme/archetypes/default.md
Последние два элемента списка применимы только в том случае, если Вы используете тему, и в качестве примера используется имя темы my-theme.
Создать новый шаблон архетипа
Вымышленный пример для раздела newsletter и архетипа файла archetypes/newsletter.md. Создайте новый файл в archetypes/newsletter.md и откройте его в текстовом редакторе.
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---
**Вставьте здесь ведущий абзац.**
## Новые интересные сообщения
{{ range first 10 ( where .Site.RegularPages "Type" "cool" ) }}
* {{ .Title }}
{{ end }}
Когда Вы создаете новый информационный бюллетень с:
hugo new newsletter/the-latest-cool.stuff.md
Он создаст новый тип информационного бюллетеня для файла содержимого на основе шаблона архетипа.
Примечание: сайт будет создан только в том случае, если в файле архетипа используется .Site, а это может занять много времени для больших сайтов.
Приведенный выше архетип рассылки иллюстрирует возможности: в файле архетипа можно использовать полную версию Hugo .Site и все функции шаблона Hugo.
Архетипы на основе каталогов
Начиная с Hugo 0.49 Вы можете использовать полные каталоги в качестве шаблонов архетипов. Учитывая этот каталог архетипов:
archetypes
├── default.md
└── post-bundle
├── bio.md
├── images
│ └── featured.jpg
└── index.md
hugo new --kind post-bundle posts/my-post
Создает новую папку в /content/posts/my-post с тем же набором файлов, что и в папке архетипов post-bundle. Все файлы содержимого (index.md и т.д.) могут содержать логику шаблона и будут получать правильный .Site для языка содержимого.