Skip to content

About

Screenshots referenced from my Windhawk mods' catalog readmes. Reference by commit SHA, never by branch.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

windhawk-images

Screenshots and other images referenced from my Windhawk mods.

Each mod's catalog entry on windhawk.net is rendered from the ==WindhawkModReadme== block inside its .wh.cpp, and that block can only reference images by absolute URL. This repository is where those URLs point.

Why images live here and not in the mod's own repository

An image URL in a published mod readme becomes a permanent public dependency of a catalog entry. The mods repository archives each referenced image and a URL that stops resolving breaks their deploy job, not just my page.

A per-mod repository is exactly the thing that gets renamed, restructured or archived over the life of a mod. This repository has one job and is never restructured, so the URLs stay valid. The same reasoning is why other Windhawk authors keep a dedicated images repository — see aubymori/images and ItsProfessional/Screenshots.

Layout

<mod-id>/<name>.png

<mod-id> is the mod's @id, matching its filename in the catalog — not the name of the repository the mod is developed in.

The two conventions

These are the rules I follow here, not rules the Windhawk catalog enforces. Most published mods reference images by branch and are perfectly fine; the reasoning below is why I'd rather not.

1. Reference images by commit SHA rather than by branch.

used here:      https://raw.githubusercontent.com/mazany/windhawk-images/<40-char-sha>/<mod-id>/before.png
also works:     https://raw.githubusercontent.com/mazany/windhawk-images/main/<mod-id>/before.png
                https://raw.githubusercontent.com/mazany/windhawk-images/refs/heads/main/<mod-id>/before.png

This is not only rot-insurance. The mods repository mirrors each referenced image and windhawk.net serves the mirror, not this repository — and the mirror is fetched once per URL and never refreshed. See scripts/archive_mod_images.py, which downloads only if not image_path.exists(). Replacing the file behind a branch URL therefore changes nothing in the catalog, silently and permanently. Changing the picture requires changing the URL, and a commit SHA guarantees that automatically — with a branch URL you have to remember to rename the file, every time, forever.

2. Never delete, rename or rewrite anything already referenced by a published mod.

The archiver calls raise_for_status(), so a URL that has not been mirrored yet and does not resolve fails the catalog's deploy job — which is the maintainer's problem, not just mine. Already-mirrored images survive their source disappearing, but that is luck, not a plan: it is why the script carries a hardcoded exclusion list for URLs from a repository that went away. Add new files; leave old ones alone even when they are superseded.

Only raw.githubusercontent.com and i.imgur.com URLs are archived at all. In particular, GitHub user-attachments URLs — what you get by dragging an image into an issue — are hotlinked forever and will eventually rot.

Adding an image

git add <mod-id>/before.png <mod-id>/after.png
git commit -m "<mod-id>: before/after for v1.2"
git push
git rev-parse HEAD

Then reference the printed SHA:

![Before](https://raw.githubusercontent.com/mazany/windhawk-images/<sha>/<mod-id>/before.png)

Licence

Images are © their author and are published so that they can be displayed on windhawk.net and in the Windhawk application alongside the mods that reference them.

About

Screenshots referenced from my Windhawk mods' catalog readmes. Reference by commit SHA, never by branch.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors