About

lazygal is another static web gallery generator written in Python.

It can be summed up by the following features :

  • Command line based (thus scriptable).
  • Handles album updates :
    • Lazy : do not build what's already there.
    • Tells you what should not be in your generated directories (and delete it if you want to).
  • Presents all your pictures and videos and associated data:
    • Recursive : generates subgalleries. Follows symlinks for flexibility.
    • Sort pictures in the same directory by EXIF date if available. More sorting options available.
    • Auto rotates pictures if they contain sensor info.
    • Reads and present selected image metadata.
    • Copies image metadata in reduced pictures.
  • Makes browsing sharing pictures easy :
    • Can generate multiple sizes to browse pictures.
    • Breadcrumbs on every page.
    • RSS feed generation for your album updates.
    • Optional generation of ZIP archives of original pictures.
    • Output internationalization.
    • Optional breaking of big galleries (directories) on multiple pages.
    • HTML5 video pages for videos
  • Make customization easy :
    • Theming.
    • XHTML and CSS compliance for provided themes.
    • Multiple options for album and picture metadata (picture metadata, flat files).
    • Add template variables from the command line or from a configuration file.
    • Per-directory configuration.
    • Javascript or fully static navigation.
  • Does not change your original pictures directories (the source argument).

Example demos

Requirements

lazygal requires :

Building a lazygal installation requires :

  • intltool for translations. intltool-update and xgettext are also needed to update translation files. All are included in the GNU gettext package.
  • xsltproc to build manpages from docbook sources. It is included in the libxslt package.

Usage

Usage is straightforward :

$ cd /var/www/album
$ lazygal ~/pics
$

More information can be found on the manual pages lazygal(1) and lazygal.conf(5).

If you want to force lazygal into checking a directory's contents, simply touch the source directory to modify its modification time :

$ touch album_source/gallery_to_check

Download & Changelog

A user friendly changelog for lazygal exists.

The latest version is Lazygal 0.8.8.

(full log of changes may be browsed in Lazygal's repository browser)

Lazygal is part of Debian (and thus Ubuntu universe), which should make it one aptitude install away if you use one of those.

Contributing

Code

Code may be downloaded using Mercurial :

$ hg clone http://sousmonlit.zincube.net/~niol/repositories.hg/lazygal/

It is browsable online in Lazygal's repository browser.

lazygal may be used directly in the source repository, by calling the lazygal.py script. Building simply prepares the translations and the man pages. Updating a source checkout of the lazygal repository is done using hg pull -u in the source directory.

Patches are very welcome.

Translations

To start a new translation, for example cs_CZ, you can proceed as follows. The first script requires intltool-update and xgettext from the GNU gettext package.

$ devscripts/update-po
$ cp locale/lazygal.pot locale/cz_CZ.po
$ $EDITOR locale/cz_CZ.po

(do not bother committing or sending in changes to lazygal.pot, they contain a lot of noise because of changes in line numbers)

Another side-note : in templates, translatable strings are declared in a character noisy way (I hope to fix this one day). As an example :

<p><a href="..">Parent</a></p>

becomes

<p><a href="..">${_('Parent')}</a></p>

Bugs & feature requests

This project has too few users/contributors to justify the use of a dedicated bug tracking application.

For now, bug reports and feature requests may go in :