Gallery Generator
This is a Jekyll plugin that generates galleries from directories full of images. It uses RMagick to create thumbnails.
This plugin is quite minimalist. It generates galleries with no pagination, no sub-galleries, and no descriptions. See my gallery for an example of what it looks like.
Usage
-
Install the
jekyll-gallery-generator
gem, either by runninggem install jekyll-gallery-generator
or by addinggem 'jekyll-gallery-generator'
to yourGemfile
and runningbundle
. -
Add
jekyll-gallery-generator
to the plugins list in your_config.yml
:
plugins:
- jekyll-gallery-generator
- Copy your image directories into
jekyll-site/photos/
. Here's what my directory structure looks like:
$ ls jekyll-site/photos
best/ chile_trip/ japan_trip/
$ ls jekyll-site/photos/chile_trip
IMG_1039.JPG IMG_1046.JPG IMG_1057.JPG
- Run
jekyll build
and be patient. It can take a while to generate all the thumbnails on the first run. After that, you should have pretty pictures.
Dependencies
- ImageMagick
- RMagick
- exifr
- Ruby >= 2.1
Install dependencies on OS X
brew install imagemagick rbenv
rbenv install 2.4.0
rbenv global 2.4.0
gem install rmagick exifr
Install dependencies on Ubuntu
apt install libmagick++-dev
gem install rmagick exifr
Configuration
This plugin reads several config options from _config.yml
. The following options are supported (default settings are shown):
gallery:
dir: photos # Path to the gallery
symlink: false # false: copy images into _site. true: create symbolic links (saves disk space)
title: "Photos" # Title for gallery index page
title_prefix: "Photos: " # Title prefix for gallery pages. Gallery title = title_prefix + gallery_name
sort_field: "date_time" # How to sort galleries on the index page.
# Possible values are: title, date_time, best_image
thumbnail_size:
x: 400 # max width of thumbnails (in pixels)
y: 400 # max height of thumbnails (in pixels)
# The following options are for individual galleries.
galleries:
chile_trip:
best_image: IMG_1068.JPG # The image to show on the gallery index page. Defaults to the last image.
japan_trip:
best_image: IMG_0690.JPG
name: "日本の旅" # Defaults to directory name, replacing _ with spaces & capitalizing words.
awesome_stuff:
best_image: snaileo_gonzales.jpg
sort_reverse: true # Reverse sort images in gallery.
secret_stuff:
hidden: true # Don't show this gallery on the index page. People must guess the URL.
with_info:
info:
desc: "Gallery Description" # Info fields can be used in custom templates.
Overriding layouts
If you want to customize the templates used by this generator, copy gallery_index.html
and gallery_page.html
to your Jekyll site's _layouts
:
cp lib/gallery_index.html jekyll-site/_layouts/
cp lib/gallery_page.html jekyll-site/_layouts/