Добавление PhotoSwipe в ваш проект
PhotoSwipe — это популярная JavaScript библиотека, предназначенная для создания адаптивных и доступных галерей изображений. Вот подробное руководство по интеграции PhotoSwipe в ваш проект.
Шаг 1: Установка PhotoSwipe
Начните с установки пакета PhotoSwipe с помощью npm. Откройте терминал и выполните следующую команду:
npm install photoswipe
Либо вы можете забрать нужные файлы из репозитория
Шаг 2: Копирование необходимых файлов
После установки вам необходимо вручную скопировать файлы PhotoSwipe из папки node_modules/photoswipe/dist
в директорию static
вашего проекта. Этот шаг обеспечивает правильное размещение необходимых скриптов и таблиц стилей в вашем веб-окружении.
├── static
│ ├── css
│ │ └── photoswipe.css
│ └── photoswipe
│ ├── photoswipe-lightbox.esm.js
│ ├── photoswipe-lightbox.esm.js.map
│ ├── photoswipe-lightbox.esm.min.js
│ ├── photoswipe.esm.js
│ ├── photoswipe.esm.js.map
│ └── photoswipe.esm.min.js
Шаг 3: Добавление CSS и инициализация библиотеки
Интегрируйте файлы CSS и JavaScript PhotoSwipe в ваш проект. Это можно сделать, добавив ссылки на файлы photoswipe.css
и photoswipe-lightbox.esm.js
в ваши HTML-документы или через процесс сборки вашего проекта.
<link rel="stylesheet" href="/css/photoswipe.css" />
Для активации PhotoSwipe добавьте следующий инициализирующий скрипт перед закрывающим тегом </body>
в вашем HTML-файле:
<script type="module">
console.log("uihio");
import PhotoSwipeLightbox from "/photoswipe/photoswipe-lightbox.esm.js";
const lightbox = new PhotoSwipeLightbox({
gallery: "#my-gallery",
children: "a",
initialZoomLevel: "fit", // initial zoomlevel
secondaryZoomLevel: "fit", // don't change zoom
imageClickAction: "close", // close on click
pswpModule: () => import("/photoswipe/photoswipe.esm.js"),
});
lightbox.init();
</script>
Шаг 4: Создание шорткода для упрощения интеграции
Для проектов, использующих статические генераторы сайтов, такие как Hugo, создайте шорткод, чтобы упростить добавление галерей и сделать их более универсальными.
Перейдите в вашу директорию с макетами и создайте файл gallery.html
внутри layout/shortcodes/
:
layouts
├── _defaults
│ ├── kbdfsjjh.html
│ └── single.html
├── partials
│ ├── extend_body.html
│ ├── extend_footer.html
│ └── extend_head.html
└── shortcodes
├── desc.html
└── gallery.html
Содержание gallery.html
должно выглядеть так:
<!-- block begin -->
<div id="my-gallery">
{{ $images := .Page.Resources.Match (printf "%s*" (.Get "folder")) }} {{ range
$images }}
<a
href="{{ .RelPermalink }}"
data-pswp-width="{{ .Width }}"
data-pswp-height="{{ .Height }}"
>
<img src="{{ .RelPermalink }}" alt="{{ .Name }}" />
</a>
{{ end }}
</div>
<!-- end of block -->
<!-- caption code -->
{{ with .Get "title" }}
<h4>{{ . }}</h4>
{{ end }}
Используйте шорткод в вашем контенте следующим образом:
{{< gallery folder="folder_with_images" title="My favorite cat" >}}
Результат: