Is Zola a good fit for my usecase?

I have a site about tiny plastic robots. It went through a couple of incarnations, at some points being powered by Hugo. I switched away from it, in favour of a homegrown site generator, after I got annoyed by fighting Hugo’s idea about content organisation and golang’s template language. I’ve found Zola recently and started to wonder whether it’d be useful for me.

The content on my site is primarily photos. They’re grouped per subject (model kit). Within a kit, there’ll be dated entries with photos. Here’s an example:

This is what makes the organisation of the input for a static generator difficult; I need to be able to slice my data two ways:

  • for website itself, I need to have per-kit pages - eg.
  • for RSS or general social-media links, I need to have per-date links, like these:

If I use one page per date (eg. /hg/turn-a/, sorting the kits within a “category” (/hg) is non-trivial. If I use one page per kit (eg. /hg/, generating a chronological list of entries across all pages is non-trivial.

Or at least, it was in Hugo. Have anyone here bumped into a “two-axis” problem like that and can tell me what their experience was with Zola and this kind of layout?

The other half of Hugo’s annoyances were templates. Golang’s templates are… something special on their own. :smiley:

Thanks for any insight!

I believe that would work with transparent sectoins. You have top section (hg?) which has subsections (like turn-a) with transparent = true and sorting by date in its front-matter. You can then have dated pages in it. The template for the turn-a section would show all photos sorted. Since it’s transparent, you can show the same template across subsections in the top section.

Thanks for the suggestion; I’ve went ahead and made a minimal test here. I’ll play with the available functions to see if I can make it work. The most immediate question is whether I can inhibit creation of the bottom-most pages (eg. public/hg/turn-a/2018-01-01/index.html)? Technically I can leave them there and just not link to them, but ideally I’d be able not to have them in the first place. Something like render = false for a page.

After some more fiddling I got to pretty decent functionality:


Plus two feature requests opened :smiley: