Генератор статических сайтов Hugo
2020-12-07
·
2 мин. для прочтения
Особенности генератора статических сайтов Hugo.
Содержание
1 Темы
- В рамах Hugo создан набор разнообразных тем.
- Для сайта научного работника или научной группы можно рекомендовать набор тем Wowchemy (см. Hugo. Шаблон для научных работников).
2 Язык описания страниц
- В качестве языка описания страниц используется Markdown. Сам Hugo использует библиотеку Goldmark. Этот диалект полностью соответствует спецификации CommonMark.
- Язык расширен в основном за счёт операторов (shortcodes) и поддержки расширений для диаграмм, LaTeX и др. ( см. Синтаксис Markdown для генератора сайтов Hugo).
- Кроме того, возможно использование и других диалектов Markdown.
- Также возможно использование других легковесных языков разметки (см. Легковесные языки разметки): Emacs Org-mode, AsciiDoc, RST через внешние программы.
3 Собственная favicon для сайта
- Собственная иконка для сайта делается в виде файла
icon.png
, размеры 512x512 пикселей. - Иконка располагается в каталоге
assets/media/
.
4 Взаимодействие с внешними сервисами
- Для комментариев используются сервисы Disqus и Commento (см. Комментирование для статических сайтов).
5 Процесс создания блога
- Предлагается не писать заметки непосредственно для сайта, а использовать систему генерации статических сайтов как бэкенд для систем ведения заметок.
- Предлагается использовать режим org-roam (см. Org-roam. Экспорт в Hugo) редактора emacs как реализации Zettelkasten (см. Метод Zettelkasten).
- Для реализации методики Zettelkasten на сайте необходима реализация обратных ссылок (см. Обратные ссылки в Hugo).
6 Создание статического сайта
7 Варианты программы
7.1 deploy
Свойство
deploy
в Hugo — это команда CLI, позволяющая напрямую развертывать статический сайт в облачных хранилищах: Amazon S3, Azure Blob Storage или Google Cloud Storage.Требуется расширенная версия Hugo (Hugo extended/deploy edition).
Основные особенности:
- Конфигурация целей развёртывания
- В файле конфигурации сайта (например,
hugo.yaml
) указываются параметры цели: имя и URL бакета с регионом (например,s3://my_bucket?region=us-west-1
).
- В файле конфигурации сайта (например,
- Синхронизация файлов
- Команда
hugo deploy
синхронизирует содержимое локальной папкиpublic
с удалённым бакетом, сравнивая имена файлов, их размеры и MD5-хеши. - Изменённые или отсутствующие файлы перезаписываются, а лишние удаляются (с ограничением на удаление не более 256 файлов по умолчанию).
- Команда
- Дополнительные флаги
--force
: принудительная перезапись всех файлов;--dryRun
: предпросмотр изменений без применения;--maxDeletes
: изменение лимита на удаление файлов.
- Конфигурация целей развёртывания
Перед использованием необходимо:
- Настроить аутентификацию через CLI выбранного облачного провайдера (AWS, Azure, Google Cloud);
- Создать бакет с публичным доступом для статического сайта.
Документация: https://gohugo.io/host-and-deploy/deploy-with-hugo-deploy/
8 Ресурсы
8.1 Учебные материалы
- Учебные материалы:
8.2 Модули
8.2.1 hugo-modules
- Репозиторий: https://github.com/gethugothemes/hugo-modules
- Сайт: https://gethugothemes.com/hugo-modules