BWWH — учебный проект по Hugo и Hugo Go Template Expressions.
Цель проекта — на практике разобрать, как Hugo собирает статический сайт из конфигурации, Markdown-контента, темы, шаблонов, partials, assets и GitHub Actions.
https://sock-puppet-dev.github.io/BWWH/
GUIDE to Hugo.md— общий гайд по Hugo и текущей структуре проекта.GUIDE to Hugo Templates.md— гайд по Hugo Go Template Expressions.GUIDE to Hugo commands.md— краткий справочник команд.
BWWH/
├── .github/workflows/hugo.yml
├── archetypes/default.md
├── content/
│ ├── _index.md
│ ├── about/index.md
│ ├── contact/index.md
│ ├── resume/index.md
│ └── tags/_index.md
├── themes/basic/
│ ├── content/posts/
│ ├── layouts/
│ └── assets/
├── hugo.yaml
├── mise.toml
├── README.md
├── GUIDE to Hugo.md
├── GUIDE to Hugo Templates.md
└── GUIDE to Hugo commands.md
hugo.yaml— главная конфигурация сайта.mise.toml— версии инструментов для локальной разработки и GitHub Actions.content/— основные страницы проекта.themes/basic/layouts/— активные HTML-шаблоны темы.themes/basic/content/posts/— учебные посты темы..github/workflows/hugo.yml— автоматическая сборка и деплой на GitHub Pages.public/— результат сборки. Эту папку не нужно редактировать вручную.
hugo server -DПосле запуска сайт обычно доступен по адресу:
http://localhost:1313/
hugo --minify --baseURL "https://sock-puppet-dev.github.io/BWWH/"Результат сборки появляется в папке public.
Деплой выполняется автоматически через GitHub Actions.
Цепочка такая:
- Изменения отправляются в ветку
main. - GitHub запускает
.github/workflows/hugo.yml. miseустанавливает Hugo, Node.js и Python изmise.toml.- GitHub Actions запускает
hugo --minify. - Папка
publicпубликуется на GitHub Pages.
В проекте специально используется локальная тема basic.
Это сделано, чтобы изучить:
- как Hugo подключает тему через
theme: basic; - как работают
baseof.html,home.html,page.html,section.html,taxonomy.html; - как работают partials;
- как Hugo собирает контент не только из
content/, но и изthemes/basic/content/; - как меню задается в
hugo.yaml; - как GitHub Pages получает готовую папку
public.