You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
rprieto 37a3c963fc 0.0.7 10 years ago
bin support for custom title and CSS 10 years ago
example support for custom title and CSS 10 years ago
public support for custom title and CSS 10 years ago
src Fix website generation (bad refactor) 10 years ago
templates Fix #3. Display web-friendly videos (smaller size, and keeps original) 10 years ago
.gitignore Initial commit 10 years ago
.npmignore ignore sample files in npm package 10 years ago
LICENSE.md Update license to MIT 10 years ago
README.md Update README with sample output 10 years ago
package.json 0.0.7 10 years ago
screenshot.jpg Fix README 10 years ago

README.md

thumbsup

Static HTML galleries from a list of photos & videos.

  • supports custom styles
  • creates thumbnails for fast previews
  • only rebuilds changed files: it's fast!
  • uses relative paths so you can deploy the pages anywhere
  • works great with Amazon S3 for static hosting

screenshot

Requirements

NPM

Input

Any folder with photos and videos. thumbsup supports 1 level of subfolders, where they each become a gallery.

input
  |
  |__ paris
  |    |__ img001.jpg
  |    |__ img002.jpg
  |
  |__ sydney
       |__ vid001.mp4
       |__ img003.png

Generating the galleries

thumbsup <args>

The following args are required:

  • --input <path> path to the folder with photos / videos
  • --output <path> target output folder

And you can optionally specify:

  • --title [text] website title (default "Photo gallery")
  • --thumb-size [pixels] thumbnail image size (default 120)
  • --large-size [pixels] fullscreen image size (default 1000)
  • --css [file] styles to be applied on top of the default theme (default none)

For example:

thumbsup --input "/media/photos" --output "./website" --title "My holidays" --thumb-size 200 --large-size 1500 --css "./custom.css"

Website structure

The generated static website has the following structure:

website
  |__ index.html
  |__ sydney.html
  |__ paris.html
  |__ public
  |__ media
  |    |__ original
  |    |__ large
  |    |__ thumbs

Deployment

The simplest is to deploy the media and generated pages to S3 buckets on AWS using the AWS CLI tools.

  • aws s3 sync ./generated/website s3://my.website.bucket --delete

Password protection

Amazon S3 buckets do not offer any type of authentication. However you can choose to deploy to another web server that offers password protection, such as HTTP Basic Auth.

An alternative is to deploy the galleries to UUID-based locations, like Dropbox shared galleries.

Dev notes

To create the sample gallery locally:

npm run example

This should output something like

Static website      [===================] done
Original media      [===================] 6/6 files
Photos (large)      [===================] 5/5 files
Photos (thumbs)     [===================] 5/5 files
Videos (web)        [===================] 1/1 files
Videos (poster)     [===================] 1/1 files
Videos (thumbs)     [===================] 1/1 files

Gallery generated successfully