Шорткоды (shortcodes) - позволяют вставлять в markdown страницы заготовленные html блоки и передавать им параметры. В Hugo уже есть набор готовых шорткодов (см. документацию), которые позволяют например вставлять видео youtube или vimeo.
Следующий шорткод вставит в страницу iframe с youtube с указанными параметрами id и autoplay:
{{< youtube id="hzWl_j__KFU" autoplay="false" >}}
Свои короткие коды
Пользователи Hugo могут самостоятельно создавать шортокоды под свои задачи. Добавим возможность вставлять в посты треки с Яндекс.Музыки.
Создадим файл layouts/shortcodes/yamusic.html
<iframe frameborder="0"
style="border:none;width:100%;height:180px;" width="100%" height="180"
src="https://music.yandex.ru/iframe/#track/{{ .Get 0 }}">
</iframe>
{{ .Get 0 }} - эта конструкция использует позиционный параметр и подставит в iframe первый (отсчет с нуля) параметр который будет передан шорткоду.
Обратите внимание на имя файла yamusic.html, yamusic - и будет именем короткого кода.
Теперь чтобы вставить трек в страницу можно написать так:
{{< yamusic 51437970 >}}
Допишем шорткод чтобы можно было использовать и позиционные и именованные параметры. Хотя в одним параметром это не очень нужно, но для примера подойдет.
<iframe frameborder="0"
style="border:none;width:100%;height:180px;" width="100%" height="180"
{{ if .IsNamedParams }}
src="https://music.yandex.ru/iframe/#track/{{ .Get "id" }}">
{{ else }}
src="https://music.yandex.ru/iframe/#track/{{ .Get 0 }}">
{{ end }}
</iframe>
{{ if .IsNamedParams }} - определяем используются ли именованные параметры.
{{ .Get "id" }} - получение доступа к параметру по имени.
После изменений короткий код можно использовать и так:
{{< yamusic id="51437970" >}}
И результат: