0.01
Low commit activity in last 3 years
A long-lived project that still receives updates
Liquid tag for responsive Flickr images using HTML5 srcset.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 4.0, < 5.0
>= 0

Runtime

~> 2.0
 Project Readme

Jekyll::Flickr

Gem Version

Liquid tag for responsive Flickr images using HTML5 srcset: {% flickr %}.

Installation

Add this line to your application's Gemfile:

$ gem 'jekyll-flickr'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jekyll-flickr

Then add the following to your site's _config.yml:

plugins:
  - jekyll-flickr

💡 If you are using a Jekyll version less than 3.5.0, use the gems key instead of plugins.

You must further provide two Flickr API credentials. You can either use environment variables FLICKR_API_KEY and FLICKR_API_SECRET or the _config.yml:

flickr:
  api_key: <flickr_api_key>
  api_secret: <flickr_shared_secret>

💡 API requests are cached in .jekyll-cache/flickr for faster builds.

Usage

Use the tag as follows in your Jekyll pages, posts and collections:

{% flickr photo_id "Caption" img_attributes %}
  • The photo_id is required and determines the photo from Flickr. In the URL http://alistapart.com/article/responsive-images-in-practice, the photo_id is the number in the path after the author (here also a number), i.e. 38285149681.
  • The Caption is optional and must be enclosed by double quotation marks. So far, double quotation marks in captions are not supported.
  • The img_attributes are any optional text that will be included in the <img> tag.

Example:

{% flickr 38285149681 "My favourite photo of the month." style="float: right;" %}

This will create the following HTML output:

<figure>
  <img src="https://farm5.staticflickr.com/4570/38285149681_f7323259a3_c.jpg" srcset="https://farm5.staticflickr.com/4570/38285149681_f7323259a3_n.jpg 320w, https://farm5.staticflickr.com/4570/38285149681_f7323259a3_z.jpg 640w, https://farm5.staticflickr.com/4570/38285149681_f7323259a3_c.jpg 800w, https://farm5.staticflickr.com/4570/38285149681_f7323259a3_b.jpg 1024w, https://farm5.staticflickr.com/4570/38285149681_2436f15109_h.jpg 1600w" sizes="100vw" style="float: right;" alt="My favourite photo of the month.">
  <figcaption>
    <div class="caption">My favourite photo of the month.</div>
    <div class="license">
      © Flickr/<a href="https://www.flickr.com/photos/140750848@N04/38285149681/">moulichoudari</a>
      <a href="https://creativecommons.org/licenses/by/2.0/">CC Attribution License</a>
    </div>
  </figcaption>
</figure>

Configuration

flickr:
  api_key: <flickr_api_key>
  api_secret: <flickr_shared_secret>
  widths: [320, 640, 800, 1024, 1600]
  width_legacy: 1024
  width_viewport: 100vw
  figcaption: true
  license: true
  caption: true

The Flickr API provides images in a number of sizes (e.g. 75, 150, 100, 240, 320, 500, 640, 1024, 3648). The widths allows to filter for sizes to be included in the srcset attribute. The size width_legacy chosen from the supported sizes is used by browsers with no support for the srcset attribute.

The configuration option width_viewport allows to define the occupying width of the photos. It is used to set the sizes attribute. More Information

TODO

  • add option to enable a link from the image to the Flickr photo page or just a larger version of the image
  • allow more control on cache expiration
  • allow for custom templates globally configured
  • allow for templates per tag via some arguments
  • block version (Liquid::Block) that allows to enclosure the caption
  • use a more sophisticated RegExp to allow for captions with quotation marks
  • privacy mode: download images to build to not require user requests to Flickr servers

Similar Projects

Contributing

  1. Fork it ( https://github.com/rriemann/jekyll-flickr/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request