Генератор статических сайтов Hugo

2020-12-07 · 2 мин. для прочтения

Особенности генератора статических сайтов Hugo.

Содержание

1 Темы

2 Язык описания страниц

  • В качестве языка описания страниц используется Markdown. Сам Hugo использует библиотеку Goldmark. Этот диалект полностью соответствует спецификации CommonMark.
  • Язык расширен в основном за счёт операторов (shortcodes) и поддержки расширений для диаграмм, LaTeX и др. ( см. Синтаксис Markdown для генератора сайтов Hugo).
  • Кроме того, возможно использование и других диалектов Markdown.
  • Также возможно использование других легковесных языков разметки (см. Легковесные языки разметки): Emacs Org-mode, AsciiDoc, RST через внешние программы.

3 Собственная favicon для сайта

  • Собственная иконка для сайта делается в виде файла icon.png, размеры 512x512 пикселей.
  • Иконка располагается в каталоге assets/media/.

4 Взаимодействие с внешними сервисами

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

8.3 Темы

8.3.1 hugobricks

Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.