Skip to main content

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

Project description

Flickr in your Pelican website

This `Pelican <>`_ plugin brings your Flickr photos
& sets into your static website.


Install this plugin and its dependencies with ``pip install pelican-flickr``

Add the plugin path to your **PLUGINS** setting in the
file. ``PLUGINS = ['pelican-flickr', ]``

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

You can view a demo on my `Personal Website` <>


The following settings should be specified in your pelican configuration
file, usually ````


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.


This setting is **mandatory**.

Use `idGettr <>`_ to find your Flickr id, it
should look like ``XXXXXXXX@YYY``


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.


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


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.


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.


My config looks like this: ::

FLICKR_USER = '123456789@YYY'
FLICKR_SETS_EXCLUDE = ['Compromising pictures', ]


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 }}
{% endfor %}


Every photoset available will have a file generated in the

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 %}
<a href="{{photo.url}}">
<img src="{{photo.sizes.largesquare.source}}" title="{{photo.title}}" />
{% endfor %}

A photoset has an instance of a photo named primary which is the cover p


As for the photo sets, each available photo generates a page, in a
subfolder per photoset of ``FLICKR_OUTPUT_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)

Each photo has several attributes:

- sizes is a dictionary of available image size with their direct urls
- tags is a list of Flickr tag (not yet asociated with Pelican tags)
- urls is a dictionary of Flickr urls about this photo

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

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pelican-flickr-0.1.1.tar.gz (21.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page