images: bust CF cache for the de-watermarked art; add the dewatermark tool
build-and-deploy / build (push) Failing after 10m31s

public/ assets are edge-cached under non-hashed URLs, so the scrubbed covers
and heroes were still being served stale. Project covers carried no cache-bust
at all - added ?v=3 to both cover references and bumped the blog heroes from
v2 to v3. Adds scripts/dewatermark.mjs implementing the documented approach
(hard-coded mark centre, feathered disc, border-mean seed, Jacobi diffusion)
rather than the ffmpeg delogo used in the previous pass.
This commit is contained in:
2026-08-25 18:20:29 +10:00
parent 4a8552c408
commit cf900b3409
6 changed files with 97 additions and 5 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ const { posts } = Astro.props;
<a class="post__link" href={`/blog/${post.id}/`}>
{post.data.hero && (
<div class="post__thumb">
<img src={`${post.data.hero}?v=2`} alt="" width="1600" height="1073" loading="lazy" decoding="async" />
<img src={`${post.data.hero}?v=3`} alt="" width="1600" height="1073" loading="lazy" decoding="async" />
</div>
)}
<div class="post__card-body">
+1 -1
View File
@@ -20,7 +20,7 @@ const dossierNo = String(index).padStart(3, "0");
{p.cover
? <img
class="dossier__cover"
src={`/covers/thumb/${p.cover}.webp`}
src={`/covers/thumb/${p.cover}.webp?v=3`}
alt=""
width="640"
height="429"
+1 -1
View File
@@ -43,7 +43,7 @@ const { Content } = await render(entry);
{entry.data.hero && (
<figure class="post__hero" data-reveal>
<img
src={`${entry.data.hero}?v=2`}
src={`${entry.data.hero}?v=3`}
alt={entry.data.heroAlt ?? entry.data.title}
width="1600"
height="1073"
+1 -1
View File
@@ -56,7 +56,7 @@ const featuredSeries = series[featured.id];
{featured.data.hero && (
<div class="featured__art" aria-hidden="true">
<img
src={`${featured.data.hero}?v=2`}
src={`${featured.data.hero}?v=3`}
alt=""
width="1600"
height="1073"
+1 -1
View File
@@ -22,7 +22,7 @@ const { Content } = await render(entry);
{p.cover && (
<figure class="case__cover" data-reveal>
<img
src={`/covers/${p.cover}.webp`}
src={`/covers/${p.cover}.webp?v=3`}
alt={`${p.title} - cover art`}
width="1600"
height="1073"