❗ Вебсайт в стадии бета-тестирования. Возможны ошибки.

Структура каталогов проекта

Классификация каталогов

Каталоги веб сайта можно разделить на:

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

Первичные каталоги существуют на всём периоде жизненного цикла сайта: от создания до вывода из эксплуатации. Их нельзя удалять, так как это приведёт к структурным ошибкам при генерации веб сайта.

Дополнительные каталоги создают и удаляют по мере необходимости. Непосредственно к структурным ошибкам это не приводит.

Сторонние каталоги создают при возникновении зависимости от внешних сервисов или модулей. При отсутствии необходимости их рекомендуют удалять. Любая зависимость — это потенциальная опасность или причина ошибки.

Первичная структура вебсайта

При создании нового проекта 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 с какой-либо крупной экосистемой.