A static site generator
Switch branches/tags
Clone or download
moggers87 Merge pull request #52 from moggers87/split-main
Split exhibition.main into separate files
Latest commit a343540 Nov 4, 2018


Build Status Coverage Status Documentation Status

Exhibition - A Python Static Site Generator

Say it right:


So something like:

eggs hib ish'n


A static site generator



GPLv3 or later. See LICENSE for the actual text.

Why though?

I've been using Hyde since forever, but I wasn't happy with it. I was also very unhappy with other static site generators (SSGs) that used Jinja2 for their templating needs:

  • Pelican and the like are too blog focused. It didn't feel in the spirit of those projects to have anything other than a blog and a few plain pages. I wanted something more freeoform to work with various projects.
  • Hyde is everything I want, except for the complete lack of documentation and a massive code base that needs a lot of work to make it run on Python 3. It is also currently unmaintained.
    • I should also mention that there are huge parts of Hyde that do not use, so starting from scratch made more sense than upgrading what would be (to me) legacy code.

There are SSGs that aren't written in Python or don't use Jinja2 for their templates, but I'm not interested in rewriting all the templates for the sites that I have made with Hyde.

What's the status of this project?

There are tests, there's some documentation, and I currently use it for a number of websites, including my personal blog.

Please feel free to add your site to the wiki if it uses Exhibition, but please make sure its safe for work and not covered in adverts.


I'm always looking for contributions, whether they be bug reports, bug fixes, feature requests, new features, or documentation. Also, feel free to open issues for support requests too - these are very helpful in showing me where documentation is required or needs improving.

There are however some items I won't consider for inclusion:

  • Functionality to upload the static site once generated. This is and shall remain out of scope for this project.
  • Windows support. I've tried maintaining packages before that have Windows support. I usually end up breaking it as I have no way to test out my changes on a regular basis.
  • Python 2 support.