Структура каталогов проекта
Классификация каталогов
Каталоги веб сайта можно разделить на:
- первичные каталоги — содержащие обязательные и необходимые для генерации сайта компоненты;
- дополнительные каталоги — содержащие компоненты, дополняющие обязательные компоненты;
- сторонние каталоги — компоненты, связанные с внешними зависимостями.
Первичные каталоги существуют на всём периоде жизненного цикла сайта: от создания до вывода из эксплуатации. Их нельзя удалять, так как это приведёт к структурным ошибкам при генерации веб сайта.
Дополнительные каталоги создают и удаляют по мере необходимости. Непосредственно к структурным ошибкам это не приводит.
Сторонние каталоги создают при возникновении зависимости от внешних сервисов или модулей. При отсутствии необходимости их рекомендуют удалять. Любая зависимость — это потенциальная опасность или причина ошибки.
Первичная структура вебсайта
При создании нового проекта Hugo создаёт структуру первичных каталогов в которую входят:
archetypes— место расположения файлов с описанием типов страниц (архетипов). Файлы в форматеMarkdown.content— место расположения файлов основного содержания веб сайта (статей, новостей, продукции). Файлы в форматахHTMLиMarkdown.data— место расположения файлов с дополнительными данными к контенту. Файлы в формате структурированных данных:YAML,JSON,CSVилиTOML.layouts— место расположения файлов, содержащих шаблоны страниц. Файлы в форматеHTML.static— место расположения файлов обработанной статики. : изображений, стилей, шрифтов, архивов (TGZ, 7z, ZIP). Изображения в форматахWEBP,SVG. Стили в форматеCSS. Шрифты в форматеWOFF2.public— место расположения файлов после генерации (компилирования). Именно эти файлы переносят на сервер для публикации.resources— место расположения кэша.themes— место расположения файлов тем, используемых сайтом.
Дополнительная структура вебсайта
Дополнительная структура выглядит следующим образом:
.git— место расположения файлов репозитория версий под управлениемGit.api— место расположения файлов с описанием собственных прикладных интерфейсов (API) сайта.assets— место расположения статических файлов сложных веб сайтов, которые требуют обработки и генерации из них выходной статики. Конвейер ресурсов (Hugo Pipe) объединяет и преобразуетSCSSв единыйCSS, изменяет размеры изображений.config— место расположения файлов настройки веб сайта. Для проектирование, тестирования и эксплуатации можно создавать разные конфигурации. Параметры и метаданные, объявленные в настройках, действуют для всего сайта, включая темы. Отдельные файлы настроек Hugo при компилировании объединяет в один файл.i18n— место расположения файлов настройки мультиязычных веб сайтов.vendor— место расположения файлов сторонних зависимостей модулей.
При добавлении дополнительных и сторонних каталогов некоторые файлы возникают не в этих каталогах, а в корне сайта:
go.modиgo.sum— связаны с модулями и служат для синхронизации зависимостей. Изменения в этих файлах происходят редко и их не рекомендуют добавлять в репозиторийGitсайта.node modules, package.json, package-lock.json— служат для интеграции Hugo с какой-либо крупной экосистемой.