Как добавить картинку в пост из assets в Hugo
Захотелось использовать картинку несколько раз внутри постов.
В Hugo есть ассеты страницы (которые лежат в одной директории со страницей), а есть глобальные - которые надо класть в папку assets1.
Но извлечь оттуда ассет - не так просто. Его нужно извлечь с помощью resources.Get.
resources.Get надо вызвать внутри {{ .. }} - а вызывать шаблонизатор внутри текста поста - нельзя.
Единственные элементы, которые можно вызвать через {{ .. }} - шорткоды (shortcodes).
И надо или написать свой шорткод, или взять готовый2… Или использовать встроенный
Взять готовый
В репозитории документации hugo есть отличный шорткод
- можно прокинуть привычные аттрибуты для img
- alt, class
- можно изменить ширину и высоту картинки
Можно просто скопировать этот файл к себе в layouts/_shortcodes.
Встроенный шорткод для добавления общих ресурсов
Удивлен, что про него никто не писал. Есть из коробки, позволяет добавить, также, кучу аттрибутов. И ещё картинку в ссылочку обернёт.
Вообще, удивительно, что такую простую штуку, как добавить ассет из глобальных ресурсов так трудно сделать и что она не работает по-дефолту. Хотя, вроде как, должна.