Last active
May 18, 2022 07:41
-
-
Save ralsina/e02a7bd0e27255dfac522ca16de78fb3 to your computer and use it in GitHub Desktop.
A gallery slideshow shortcode for Nikola
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Nikola slides shortcode | |
## Put it in shortcodes/ in your site | |
## Use it like this: | |
## {{% slides "foo" %}} | |
## That will create a carousel with all the images from galleries/foo | |
## This uses bootstrap4 so only works in themes that use it | |
## Twek as needed for visuals | |
<%! | |
import os | |
def image_list(gallery): | |
imgs = [] | |
for img in os.listdir(os.path.join('galleries', gallery)): | |
imgs.append(f'/galleries/{gallery}/{img}') | |
return sorted(imgs) | |
%> | |
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel"> | |
<ol class="carousel-indicators"> | |
% for i, img in enumerate(image_list(_args[0])): | |
% if i == 0: | |
<li data-target="#carouselExampleIndicators" data-slide-to="${i}" class="active"></li> | |
% else: | |
<li data-target="#carouselExampleIndicators" data-slide-to="${i}"></li> | |
% endif | |
% endfor | |
</ol> | |
<div class="carousel-inner"> | |
% for i, img in enumerate(image_list(_args[0])): | |
% if i == 0: | |
<div class="carousel-item active"> | |
% else: | |
<div class="carousel-item"> | |
% endif | |
<a href="${img}"> | |
<img class="d-block" src="${img}" style="max-height: 25rem; margin-left: auto; margin-right: auto;"> | |
</a> | |
</div> | |
% endfor | |
</div> | |
</div> | |
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"> | |
<span class="carousel-control-prev-icon" aria-hidden="true"></span> | |
<span class="sr-only">Previous</span> | |
</a> | |
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"> | |
<span class="carousel-control-next-icon" aria-hidden="true"></span> | |
<span class="sr-only">Next</span> | |
</a> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment