bingo: 1200x630 JPEG for og:image

og:image pointed at the 1200px WebP dialog variant: no declared size,
a 16:9 frame that link previews crop unpredictably, and WebP isn't
rendered by every preview client. The alt text was just the site name.

Photo variants now include <slug>-<hex>-og.jpg, a centre crop to
1200x630, and the head declares its type and size. Migration 013 adds
photo_og so rows built before this keep using the WebP until "Rebuild
resized photos" is run. The alt text names the pictured datacenter and
city. resize and the new og_crop share one convert call.

Assisted-by: Claude:opus-5
This commit is contained in:
Sergei Poljanski 2026-10-10 09:28:57 +04:00
commit 4e074fd4bf
Signed by: asxpi
GPG key ID: 4F8851660FA4121B
6 changed files with 68 additions and 19 deletions

View file

@ -51,9 +51,8 @@ class BingoWeb < Sinatra::Base
end
# Preview image: the most recent hit with a photo, else the first photo.
def og_photo(board)
dc = board.incidents.map(&:datacenter).find(&:photo_key) || board.cells.find(&:photo_key)
dc && "#{base_url}#{photo_path(dc, 1200)}"
def og_dc(board)
board.incidents.map(&:datacenter).find(&:photo_key) || board.cells.find(&:photo_key)
end
def fmt_date(d) = d.strftime('%d.%m.%Y')