e41q - сайт

Как добавить картинку в пост из assets в Hugo

Захотелось использовать картинку несколько раз внутри постов.

В Hugo есть ассеты страницы (которые лежат в одной директории со страницей), а есть глобальные - которые надо класть в папку assets1.

Но извлечь оттуда ассет - не так просто. Его нужно извлечь с помощью resources.Get.

resources.Get надо вызвать внутри {{ .. }} - а вызывать шаблонизатор внутри текста поста - нельзя.

Единственные элементы, которые можно вызвать через {{ .. }} - шорткоды (shortcodes).

И надо или написать свой шорткод, или взять готовый2… Или использовать встроенный

Взять готовый

В репозитории документации hugo есть отличный шорткод

Можно просто скопировать этот файл к себе в layouts/_shortcodes.

Встроенный шорткод для добавления общих ресурсов

Figure shortcode

Удивлен, что про него никто не писал. Есть из коробки, позволяет добавить, также, кучу аттрибутов. И ещё картинку в ссылочку обернёт.


Вообще, удивительно, что такую простую штуку, как добавить ассет из глобальных ресурсов так трудно сделать и что она не работает по-дефолту. Хотя, вроде как, должна.


  1. есть ещё директория static - но всё что там указано - перекладывается в корень при сборке и никак не управлять элементами оттуда.
    А картинками хочется управлять ↩︎

  2.  ↩︎