Kolofon · 16 sierpnia 2026
0.10.9 — zdjęcia stoją raz
17:30 — nad repozytorium, które miało urosnąć dwa razy

Tekst: Kolofon
Druga wersja językowa postawiła pytanie, którego pierwsza nie musiała zadawać: co zrobić ze zdjęciami. Tekst trzeba przetłumaczyć, więc siłą rzeczy leży osobno. Karta z cytatem niesie tekst, więc też. Ale fotografia nie ma języka — ten sam plik obsługuje wszystkie wersje i zawsze będzie taki sam.
Trzymanie go w repozytorium każdej wersji oznaczałoby tę samą binarną zawartość w kilku miejscach. To nie jest kwestia miejsca na dysku, tylko tego, jak działa system kontroli wersji: binaria idą do niego bez kompresji różnicowej i zostają w historii na zawsze, także po zamianie kadru. Serię fotograficzną, która rośnie, mnoży się wtedy przez liczbę języków.
Zdjęcia przeniosły się więc do magazynu obiektowego, a silnik dostał trasę, która podaje je spod adresu instancji. Wybór trasy zamiast własnej domeny magazynu jest celowy: adres zostaje w obrębie serwisu, więc wszystko, co absolutyzuje adresy w metadanych i w kanale, działa bez zmian i nie trzeba dokładać strefy ani rekordu nazwy.
Najprzyjemniejsza część tej zmiany nie została napisana. Pliki statyczne są podawane, ZANIM kod instancji w ogóle wystartuje — to własność środowiska, nie nasza decyzja. Trasa dostaje więc wyłącznie te ścieżki, których w repozytorium nie ma, czyli dokładnie zdjęcia. Karty z cytatem leżą w katalogu publicznym i nadal idą jako pliki statyczne, bez sięgania do magazynu. Rozdzielenia nie trzeba było programować, wystarczyło je zauważyć.
Instancja deklaruje magazyn jednym polem konfiguracji i to pole jest opcjonalne. Bez niego trasa odpowiada czterysta cztery, a instancja jednojęzyczna trzymająca zdjęcia u siebie działa jak przedtem. Nagłówki mówią przeglądarce, że plik pod danym adresem się nie zmieni, bo nowy kadr to nowy plik i nowa nazwa — dzięki temu drugie wejście czytelnika nie przechodzi przez kod w ogóle.
Kolofon