Dorothea
Dorothea is a static site generator for photography websites, primarily photo essays.
It is a port to Python of Jack Qiao's wonderful Exposé project (originally in bash). It keeps adding fixes and features, but with --legacy it's output-compatible* with Exposé, and our integration tests check that on each commit.
*=Resized photos come from Pillow rather than ImageMagick, so their bytes differ slightly (their sizes match).
Documentation: dorothea.readthedocs.io, including a configuration reference and a guide for migrating from expose.sh.
What is it
If you're a photographer, you probably come back home from a trip and end up with photos that look like this:
Dorothea turns those folders into a website, resizing the photos and encoding the videos for the web. Sub-folders become galleries, and a text file next to a photo becomes its caption. Two themes are included: photoessay, with full-screen photos and text over them, and medium, with text in a column between the photos (themes).
Quick start
Dorothea runs on Linux, macOS and Windows with Python 3.14+; everything it needs installs with it, ffmpeg included. With uv:
cd ~/my-trip-to-ecuador
uvx dorothea # builds the site into ./_site
uvx dorothea serve # or build, then preview it at http://localhost:8000/
Put the _site folder on any web server that serves static files. Other ways to install (uv tool install, pipx) are in the getting started guide.
Why a Python port of Exposé
I wanted to start addressing some of the pain points with the original package, branch out to new themes and tweaks, and found maintaining my own fork in Bash to be less work than porting it to Python, thanks to today's AI-assisted coding tools.
Metadata
Release files for dorothea 1.9.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dorothea-1.9.4.tar.gz | 6.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dorothea-1.9.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.6 MB
Release files / dorothea-1.9.4.tar.gz
| Download URL | dorothea-1.9.4.tar.gz |
|---|---|
| Size | 6.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
74614a82358cacbf4baf92f694514a4ea8ca3b58e11d82dc09c427684b672630
|
|
BLAKE2b-256 checksum How to use checksums |
87c180a838fede875eae349c9cb2a14ea8c3897a83b67f6c94c3e40bf64faa6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / dorothea-1.9.4-py3-none-any.whl
| Download URL | dorothea-1.9.4-py3-none-any.whl |
|---|---|
| Size | 253.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2c17e753e3d2c53b7ee16f6f7b8f646264cd47447538b2d3c872de56f30f4b5
|
|
BLAKE2b-256 checksum How to use checksums |
dd9d62589dcba0ea194ad933d2eccb7b980289340aae2e74b9200830ab6b7273
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|