Hacker News new | ask | show | jobs
Show HN: Photish, a simple multithreaded static photo portfolio generator (github.com)
29 points by hlawson 3827 days ago
4 comments

I created Photish as most of the static website generators I came across and used were text focused. The tooling, patterns and structure were geared towards sites with lots of text based content.

Photish is focused on photo based websites. Using a collection of albums in a folder, some templates defined in the language of your choice and some (optional) accompanying metadata in a YAML file, Photish will transcode your images into your desired formats (using ImageMagick) and parse and render the templates against your photo collection.

Transcoding large photo collections can take time, Photish does it's best to speed up this process by creating multiple threads to allow ImageMagick transcodes to run in parallel. It also caches all transcodes to avoid regeneration as you develop your site locally.

Try it out, let me know what you think! The project is in it's early days but it is in a working and performant state. Happy to take feature requests and or pull requests.

Have you tried Sigal? http://sigal.saimon.org/en/latest/

I use Jekyll for static sites but for photo galleries Sigal is my go-to solution as it is fast and stable and works very well for generating a static photo gallery.

Nice work on the demo, too.

Expose looks very impressive, and was posted here 74 days ago:

https://github.com/Jack000/Expose

https://news.ycombinator.com/item?id=10376468

Expose is great, I came across that too when it was shared here. The author has created some beautiful themes and the example sites look great.

I was keen to contribute to it (to try add other template engines, caching, etc.) however it is written in bash and the script is over 900 lines and doesn't have a test suite yet. Not being too proficient in bash I was a bit anxious about diving in and contributing.

author here. I wouldn't call myself proficient in bash either :]

I think I'd like for expose to remain a simple(ish) script that you don't have to think too much about. For something more fully-featured with actual templating, caching, plugins etc bash is not quite the right tool imo.

I'm glad there are more options in the "photo-oriented SSG" space.

I haven't tried Sigal, thanks for sharing the link. I'll check it out. What do you like about it?

I also use Jekyll, it has been the perfect tool for my blog.

Command line screenshots isn't really helping for a visual tool. With no screenshots or an online demo this requires a lot of work to just decide if it's useful or not.

Also, I haven't looked at the code but the first thing I do when looking at Ruby projects is look for test/spec directory. Kudos for having it and testing your library

Completely agree, it is a place holder until I've put together my own site which I'll ideally demo there. I've spent all my time tweaking and improving Photish that I haven't had time to start the site that I wanted to create before I made the tool!

A demo is available running "photish init --example && photish host", the design is kinda embarrassing though so I wouldn't want people misjudging the possibilities of what you can create with my poor example site design :)

Thanks for poking around, testing is important to me too. There are also feature tests with cucumber/aruba in the /features directory.

Could we get screenshot examples?
Thanks for the feedback, it is on my to do. However for now, Photish itself is probably best showcased by running it and checking it out. After it is installed, an example/demo is provided by running:

photish init --example && photish host

Once I put together a nice template and some example sites I they would better showcase my HTML/CSS/JavaSCript and design skills rather then what Photish can do. Theoretically any design could be created using Photish as the templates and assets are completely up to you. The tool just takes care of the generation.

As a temporary thing, I've added a screenshot of Photish running in the terminal :)