Hugo. Использование page bundle

Hugo. Использование page bundle

2026-03-03 · 2 мин. для прочтения
blog computer-science

Hugo. Использование page bundle.

Содержание

1 Общая информация

  • В Hugo существует два основных способа организации контента:
    • страница как отдельный файл (например, content/about.md);
    • страница как каталог (page bundle) — папка с файлом index.md и связанными ресурсами (изображения, pdf и т.д.).
  • Для большинства современных проектов предпочтительнее использовать page bundles.

2 Страница как отдельный файл

  • Каждый Markdown-файл соответствует одной странице:
    content/
      about.md
      blog/
        first-post.md
        second-post.md
    

2.1 Плюсы

  • Простота и минимализм — не нужно создавать папки для каждой страницы.
  • Легко создавать новые страницы одной командой (hugo new about.md).
  • Подходит для простых сайтов с минимальным количеством медиафайлов.

2.2 Минусы

  • Все изображения и прочие ресурсы, относящиеся к странице, приходится хранить в глобальной папке static или assets.
    • Это затрудняет организацию: файлы разных страниц перемешиваются, при переносе страницы нужно вручную искать и копировать связанные ресурсы.
  • Нет чёткой привязки ресурсов к конкретной странице.
  • Для многоязычных сайтов приходится использовать дополнительные соглашения об именах.

3 Page bundle (каталог страницы)

  • Подход, рекомендованный разработчиками Hugo.

  • Страница представлена папкой, внутри которой находится файл index.md и все сопутствующие ресурсы:

    content/
      about/
        index.md
        photo.jpg
      blog/
        first-post/
          index.md
          image.png
        second-post/
          index.md
          diagrams/
            scheme1.png
    
  • Два типа page bundle:

    • Leaf bundle — обычная страница без вложенных дочерних страниц.
    • Branch bundle — страница-раздел (например, раздел блога), который может содержать дочерние страницы.
      • В таком случае используется файл _index.md.

3.1 Плюсы

  • Локальность ресурсов — все изображения, документы и другие файлы, относящиеся к странице, находятся в той же папке.
  • Удобство в шаблонах — можно обращаться к ресурсам через .Resources, использовать методы обработки изображений прямо из папки страницы.
  • Лучшая поддержка многоязычности — для каждого языка можно создать свою папку с собственными ресурсами.
  • Переносимость — страницу вместе со всеми вложениями легко скопировать.
  • Организация сложных структур — если страница требует много файлов, папка позволяет держать всё вместе.

3.2 Минусы

  • Усложнение структуры — для каждой страницы нужно создавать отдельную папку.
  • При большом количестве простых страниц (без медиа) количество папок может показаться избыточным.

4 Сравнение

КритерийОтдельный файлPage bundle
Управление ресурсамиРесурсы хранятся глобально, трудно отслеживать принадлежностьВсе ресурсы локальны, легко управлять
ПереносимостьНизкая — нужно отдельно переносить файлы из staticВысокая — вся страница в одной папке
ПростотаВысокаяСредняя (требуется создавать папку)
Поддержка в темахБазоваяРасширенная (методы .Resources, обработка изображений)
МногоязычностьТребует внешних соглашенийВстроенная поддержка через локализованные папки
ПроизводительностьОдинаковаяОдинаковая
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.