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 :
- 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.
- Does not change your original pictures directories (the source argument).
lazygal requires :
- Python >= 3.3.
- Python imaging library (PIL) friendly fork Pillow >= 2.
- Genshi >= 0.7, a Python toolkit for generation of output for the web.
- GExiv2 >= 0.5 (to have GObject introspection) which provides Python binding to exiv2, a library to access image metadata.
- Python GStreamer, associated GObject introspection modules (and
introspection overrides) and plugins for video transcoding. For instance,
for Debian, this means the following binary packages:
lazygal installation requires :
xgettextare also needed to update translation files. All are included in the GNU
- pandoc to build manpages from markdown sources.
Usage is straightforward :
$ cd /var/www/album $ lazygal ~/pics $
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.
lazygal version is available as an archive.
(full log of changes may be browsed in Lazygal's repository browser)
Code may be downloaded using Git :
$ git clone http://sml.zincube.net/~niol/repositories.git/lazygal
It is browsable online in Lazygal's repository browser, and this page also provides an up to date snapshot of the development source tree.
lazygal may be used directly in the source repository, by calling the
lazygal.py script. Building simply prepares the translations and the
pages. Updating a source checkout of the
lazygal repository is done using
git pull in the source directory.
Patches are very welcome.
To start a new translation, for example
cs_CZ, you can proceed as follows. The first script requires
xgettext from the GNU
$ 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 :
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 :