A Jekyll plugin that generates photo galleries from directories full of images.
Ruby HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

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.

Gem Version

Build Status

Floobits Status

Usage

  1. Install the jekyll-gallery-generator gem, either by running gem install jekyll-gallery-generator or by adding gem 'jekyll-gallery-generator' to your Gemfile and running bundle.

  2. Add jekyll-gallery-generator to the plugins list in your _config.yml:

plugins:
  - jekyll-gallery-generator
  1. 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
  1. 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

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/