GithubHelp home page GithubHelp logo

stalbum's Introduction

build status

stalbum

stalbum is a static image gallery generator. It simply takes in a directory of images and a couple of templates based on which it constructs a gallery. The gallery consists of albums (maps to directory) that are displayed using thumbnails.

See demo/ to get started. Alternatively you can just clone stalbum-starter and build your albums on top of that.

Dependencies

  • Node.js (0.10.x is guaranteed to work, earlier might work as well)
  • npm install the rest
  • ImageMagick or GraphicsMagick (for thumbnails)

License

stalbum is available under MIT. See LICENSE for more details.

stalbum's People

Contributors

bebraw avatar

Stargazers

Dmitriy Akulov avatar

Watchers

 avatar Ville Lahdenvuo avatar James Cloos avatar Dmitriy Akulov avatar  avatar

stalbum's Issues

Implement plugin architecture?

It might be neat if it was possible to extend stalbum using external plugins. Just need to specify this better. What sort of plugins would be useful? Can some of the existing functionality be converted to plugins?

More storage options

S3 can become very expensive for big high traffic websites.
It would be awesome if the user could mount his own linux server storage via NFS.

Move custom CSS and JS declarations to a head matter

Define something like the following at the beginning of templates:

js: ['foo', 'bar']
css: ['baz']

---
content goes here

The content at head matter should be then injected to the master template (match by name). There can be a convention that generates proper script templates. Later on that can be generalized to something prettier.

Investigate ENOMEM

Trace below:

stalbum 0.5.4


child_process.js:927
    throw errnoException(process._errno, 'spawn');
          ^
Error: spawn ENOMEM
    at errnoException (child_process.js:980:11)
    at ChildProcess.spawn (child_process.js:927:11)
    at Object.exports.spawn (child_process.js:715:9)
    at exec2 (/usr/lib/node_modules/stalbum/node_modules/imagemagick/imagemagick.js:24:25)
    at Object.exports.identify (/usr/lib/node_modules/stalbum/node_modules/imagemagick/imagemagick.js:149:14)
    at /usr/lib/node_modules/stalbum/lib/photos.js:29:12
    at /usr/lib/node_modules/stalbum/node_modules/async/lib/async.js:224:13
    at /usr/lib/node_modules/stalbum/node_modules/async/lib/async.js:108:13
    at Array.forEach (native)
    at _each (/usr/lib/node_modules/stalbum/node_modules/async/lib/async.js:32:24)

Watch option

It would be handy if it was possible to invoke stalbum in watch mode. It would just watch the input files and templates and then run the tool on change.

If implemented well, it should be able to support partial updates.

Support incremental updates

In case new images are added to the system it can be useful if stalbum generates html and thumbnail only for those rather than for each.

Set up a master template

This would be shared by actual templates and contain things like basic HTML declarations (header etc.) and a content slot where the template that inherits is injected.

Provide starter templates

There should be a couple of good looking starter templates. Or alternative styles in case it is possible to come up with a sensible starting HTML.

Allow photo dimensions to be changed

Now it uses original data. It would be good to be able to resize that into something else as you might not want to share the original data always.

Allow metadata to be provided

It should be possible to load metadata related to photos and provide that to the template. If there is a JSON or YAML file that has been named the same way as the photo itself (ie. foo.jpg and foo.json), it should load the data and then pass that to the context.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.