This repo holds images used in League curriculum websites. Each top-level
directory (action, classes, logos, python, robots, etc.) is a
category of images. Browse the published catalog at:
http://images.jointheleague.org
Visit the repo or Open in Codespaces.
The repo ships with a small CLI called mkimg (see scripts/cli.py)
that builds the catalog site in three steps:
- describe — sends every undescribed image to the Claude vision API and
writes a sibling
.yamlfile with the title, description, and tags. Images that already have a.yamlare skipped, so this is cheap to re-run. - compile — walks every category directory, reads
category.yamland the per-image YAML files, and merges them into data/catalog.json. - index — renders the HTML catalog into
_site/from the Jinja templates in templates/.
A GitHub Actions workflow (.github/workflows/build.yml)
runs the same three steps on every push to master, copies the image
directories into _site/, and deploys the result to GitHub Pages at
images.jointheleague.org. The ANTHROPIC_API_KEY repo secret is what lets
the workflow describe new images automatically.
The normal workflow is:
- Drop image files into the appropriate category directory (e.g.
action/,robots/). If you need a new category, make a new directory and add acategory.yamllike the existing ones. - Commit and push to
master. - The GitHub Action will describe any new images, regenerate the catalog, and redeploy the site. A minute or two later the new images show up at images.jointheleague.org, and you can grab the URL from there.
That's it for the common case — you don't have to run anything locally.
If you want to preview changes before pushing, or describe images without waiting on CI:
# One-shot: describe new images, compile, and build the site
just build
# Individual steps
just describe # all categories
just describe action logos # just these categories
just compile
just index
# Preview at http://localhost:8000/_site/
just devThe describe step needs ANTHROPIC_API_KEY set in your environment.
compile and index do not.