Skip to main content

Pelican plugin to add Flickr sets and photos to your website.

Project description

This Pelican plugin brings your Flickr photos & sets into your static website.

Install

TODO pip

Add the plugin path to your PLUGINS setting in the pelicanconf.py file. PLUGINS = ['pelicanflickr', ] You must setup at least two settings for this plugin to work (see Settings section for more details): * FLICKR_API_KEY * FLICKR_USER

Finally, you can run pelican to render your website.

For the first run, as the cache is empty and can be quite long to populate i recommend using pelican --debug to see what is happening…

Settings

The following settings should be specified in your pelican configuration file, usually pelicanconf.py

FLICKR_API_KEY

This setting is mandatory.

If you don’t already have one, you must ask for a Flickr Api key (it’s free). Here we only need the key, not the secret part used only for authentified actions.

FLICKR_USER

This setting is mandatory.

Use idGettr to find your Flickr id, it should look like XXXXXXXX@YYY

FLICKR_OUTPUT_DIRNAME

This setting is optional, its default value is flickr.

This setting sets the name of the output directory for all the files generated by this plugin (sets & photos). It will be a part of the urls on your website.

FLICKR_UPDATE

This setting is optional, its default value is True.

To speed up cache usage & overall rendering we can forbid the usage of the Flickr API once the cache has been built, by setting it to False.

FLICKR_CACHE

This setting is optional, its default value is True.

This is a bit the opposite effect of FLICKR_UPDATE, as it forbids the usage of the cache when sets to False.

Essentially for development & testing purposes.

FLICKR_SETS_EXCLUDE

This setting is optional, its default value is None.

You can specify a list of Flickr sets id or name, to exclude them on your website.

Example

My config looks like this:

FLICKR_API_KEY = 'xxxXXXxC0FFEE'
FLICKR_USER = '123456789@YYY'
FLICKR_SETS_EXCLUDE = ['Compromising pictures', ]
FLICKR_OUTPUT_DIRNAME = 'photos'
FLICKR_UPDATE = False

Templates

General context (any page)

You can access all your Flickr photosets from any generated page using the flickr_sets variable as in the example below.

{% for set in flickr_sets %}
<div class="set">
  <a class="primary" href="{{ set.url }}">
    <img class="light" src="{{ set.primary.sizes.medium.source }}" />
    {{ set.title }}
  </a>
</div>
{% endfor %}

Photosets

Every photoset available will have a file generated in the FLICKR_OUPTUT_DIRNAME

A variable named photoset is added to this page’s context. This plugin embeds a default template flickr_set.html that you can override by creating a file in your template dir with the same name.

Here is basically the content of the default file:

<h1>{{ photoset.title }}</h1>
{% for photo in photoset.photos %}
  <a href="{{photo.url}}">
  <img src="{{photo.sizes.largesquare.source}}" title="{{photo.title}}" />
  </a>
{% endfor %}

Photos

As for the photo sets, each available photo generates a page, in a subfolder per photoset of FLICKR_OUPTUT_DIRNAME (ie. output/flickr/my-set/425169.html for the photo with id 425169).

Several variables are added to the page context:

  • photoset is the parent photo set object

  • photo is the current photo object

  • photo_previous is the possible previous photo object in the parent set (may be null)

  • photo_next is the possible next photo object in the parent set (may be null)

You can override the default flickr_photo.html by adding a file with the same name in your template dir.

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page