commit e774592a186abac652c858f5fff5c6228bc1ffd8 from: Anton Kasimov date: Tue Aug 25 15:41:46 2026 UTC Partial и shortcode для slideshow commit - 696d8188d3a1f41988285e7d3f1df6505c59c017 commit + e774592a186abac652c858f5fff5c6228bc1ffd8 blob - e61803b676a8709506ac851a1cac86c1a8d911c8 blob + d15dff7b5ff689dc2644879736a52743c47b151b --- README.md +++ README.md @@ -264,6 +264,57 @@ SVG дополнительно минифицируеÑ ) -}} ``` +### slideshow + +Отображает слайдшоу, создавая простую HTML-структуру: + +```html +
+ + +
+``` + +Каждое изображение отображается через partial `image`, поэтому изображения, которые Hugo умеет обрабатывать, получают адаптивные варианты. + +`images` может быть одиночной строкой — слайдшоу из одного изображения — или списком. Элемент списка может быть: + +* строкой — путём к ресурсу страницы, глобальному ресурсу, путём от корня сайта или абсолютным URL; +* Hugo image resource; +* `dict` с ключами `image` (ресурс или путь), `src`, `alt`, `title` и `attributes` (атрибуты ``). + +Относительный путь сначала ищется в ресурсах страницы, затем в глобальных ресурсах. Если разрешить его не удалось, сборка завершается ошибкой. Пути от корня сайта и абсолютные URL передаются в `src` без изменений. + +Атрибуты контейнера передаются через `attributes`; переданный `class` дополняет, а не заменяет класс `slideshow`. Для изображений дополнительно устанавливается класс `slideshow-slide`. + +Всем слайдам устанавливается `decoding="async"`, слайдам после первого — `loading="lazy"`: скрытые слайды не загружаются заранее. Значения переопределяются через `attributes` изображения. + +Контейнеру устанавливается CSS-переменная `--slide-count`, каждому слайду — `--slide-index` (с нуля). Они позволяют сайту строить анимацию перелистывания без знания разметки, например: + +```css +.slideshow-slide { + animation-delay: calc(var(--slide-index) * 4s); + animation-duration: calc(var(--slide-count) * 4s); +} +``` + +Переданный в `attributes` `style` сохраняется; переменные дописываются к нему. + +Параметры `widths`, `sizes` и `mode` передаются каждому изображению; без них используются настройки `radium.images`. + +Например: + +```go-html-template +{{- partial "slideshow.html" (dict + "page" . + "images" (slice + "photo-1.jpg" + (dict "src" "photo-2.jpg" "alt" "Описание") + ) + "attributes" (dict "class" "hero") +) -}} +``` + ### publish/security-txt Генерирует ресурс `.well-known/security.txt` по RFC 9116. @@ -506,6 +557,40 @@ Person.jsonld Поддерживает обычную и Markdown-нотацию shortcode. +### slideshow + +Создаёт слайдшоу через одноимённый partial. + +Изображения передаются внутренним содержимым — по одному пути или URL в строке: + +```md +{{< slideshow >}} +photo-1.jpg +photo-2.jpg +{{< /slideshow >}} +``` + +или параметром `images` через запятую: + +```md +{{< slideshow images="photo-1.jpg, photo-2.jpg" />}} +``` + +Относительные пути разрешаются в ресурсах страницы и глобальных ресурсах; неразрешимый относительный путь завершает сборку ошибкой. Пути от корня сайта и абсолютные URL используются как есть. + +Поддерживаются атрибуты контейнера: + +* `class`; +* `id`; +* `role`; +* `tabindex`; +* `aria-label`; +* `aria-hidden`. + +Также можно передать параметры `widths`, `sizes` и `mode`, управляющие генерацией адаптивных вариантов (см. partial `image`). + +Для `alt`, `title` и других атрибутов отдельных изображений используйте partial `slideshow` напрямую. + ### video Создаёт элемент `