Set the original colour scheme's typeface and palette to the 1987
Docklands Light Railway P86/P89 stock.
- Use the Rockwell slab serif (the original DLR branding typeface) for the
original theme, with Rokkitt loaded as a free fallback for systems
without Rockwell installed.
- Flip the palette to be blue-dominant: blue body/skirt as the field, red
band/doors as the accent, white stripes, matching the rolling stock.
Apply path filters to the push (merge-to-main) trigger only, so merges that
do not change the image (CI/Renovate config, docs) skip the build and release.
Pull requests keep running unfiltered so the required check is always reported.
Add a concurrency group keyed by ref with cancel-in-progress, so a newer run
supersedes an older in-flight run: a fresh merge to main cancels the previous
build and only the most recent release is produced, avoiding tags that would
be immediately replaced.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a packageRule that automerges patch and minor updates, with
platformAutomerge enabled so Gitea merges them once required checks pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Join the two theme options into a single rounded container with the active
segment filled and a divider between them, replacing the two separate pills.
Markup and aria-pressed behaviour are unchanged.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
config:recommended pulls in :semanticPrefixFixDepsChoreOthers, whose catch-all
packageRule forces non-npm updates (Docker base image, Gitea Actions) to the
chore type, overriding the top-level semanticCommitType. chore produces no
release, so Renovate updates were never auto-tagged.
Append a packageRule matching all packages that sets semanticCommitType to fix,
so every merged Renovate PR registers as a patch and is released and tagged.
Also migrate the deprecated fileMatch keys to managerFilePatterns.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Switch the original theme to a red background with white message text, with
navy buttons, evoking the red B07/B99 stock. Red/white/blue are all retained.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use a cream/white background with navy message text and red buttons, so the
original red/white/blue livery presents blue text rather than white text on a
blue field.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the body background gradient with the solid theme colour and remove
the now-unused --bg-accent variables from both colour schemes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add QEMU setup and build for linux/amd64 and linux/arm64 (armv8), publishing
a single multi-arch manifest. The nginx-unprivileged base image provides both
architectures.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On each push to main, derive the next semantic version from the
conventional-commit messages since the last v* tag (feat -> minor,
fix/perf -> patch, \! or BREAKING CHANGE -> major) and, when a release is
warranted, build and publish the image tagged X.Y.Z, X.Y, X and latest,
then record an annotated vX.Y.Z tag for the next computation. Non-release
pushes publish a sha-<short> image only.
Configure Renovate to commit updates as fix(deps): so each merged Renovate
PR registers as a patch change and is released and tagged automatically.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the raw latest-on-default-branch tag, which moved latest on every
main push, with metadata-action's latest=auto flavor so latest follows the
newest non-prerelease v* release. Add a {{major}} tag alongside the
existing version and major.minor semver tags; branch and SHA tags remain
for traceability of non-release builds.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The auto-provided GITEA_TOKEN does not carry container registry write
permission on most Gitea instances, causing docker login to fail with
"unauthorized". Use a Personal Access Token supplied via the
PACKAGES_TOKEN secret, with the package namespace owner as the username.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Track the Dockerfile base image, the actions used in the Gitea workflow,
and versioned front-end dependencies referenced in HTML (via renovate
comment annotations or jsDelivr/unpkg npm URLs).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Build the image on pushes to main, version tags and pull requests, and
push to the Gitea container registry (except on PRs) using the
auto-provided GITEA_TOKEN. Tags are derived with docker/metadata-action.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Serve the static site from a non-root nginx image listening on 8080,
with cache headers, gzip and a /healthz endpoint. Designed to run behind
an external reverse proxy that terminates TLS.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
script.js picks a random entry from MESSAGES on load and on each "Check
again" click, and persists the chosen colour scheme in localStorage.
messages.js holds the MESSAGES array as a placeholder template to be
filled in with content.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Single-page layout with a centred message, a colour-scheme toggle, and a
"Check again" button. styles.css defines two palettes selected via the
data-theme attribute: modern DLR turquoise/teal and the original 1987
red-and-blue livery.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 16:18:04 +01:00
7 changed files with 213 additions and 55 deletions
"description":"Commit every update as fix(deps) so each merged Renovate PR triggers a patch release. config:recommended pulls in :semanticPrefixFixDepsChoreOthers, which forces non-npm updates (Docker, Actions) to chore and would otherwise produce no release.",
"matchPackageNames":["*"],
"semanticCommitType":"fix"
},
{
"description":"Auto-merge patch and minor updates once checks pass.",
"matchUpdateTypes":["patch","minor"],
"automerge":true
}
}
],
],
"platformAutomerge":true,
"customManagers":[
"customManagers":[
{
{
"customType":"regex",
"customType":"regex",
"description":"Update HTML dependencies annotated with a renovate comment, e.g. <!-- renovate: datasource=npm depName=bootstrap --> before the versioned URL",
"description":"Update HTML dependencies annotated with a renovate comment, e.g. <!-- renovate: datasource=npm depName=bootstrap --> before the versioned URL",
/* Segmented control: both options joined in one rounded container,
with the active segment filled. */
.theme-toggle{
.theme-toggle{
display:flex;
display:inline-flex;
gap:0.5rem;
border:2pxsolidvar(--button-bg);
border:none;
border-radius:999px;
overflow:hidden;
margin:0;
margin:0;
padding:0;
padding:0;
}
}
@@ -77,19 +82,22 @@ body {
font-family:inherit;
font-family:inherit;
font-size:0.9rem;
font-size:0.9rem;
font-weight:600;
font-weight:600;
padding:0.5rem1rem;
padding:0.5rem1.1rem;
border:2pxsolidvar(--button-bg);
border:none;
border-radius:999px;
background:transparent;
background:transparent;
color:var(--text);
color:var(--text);
cursor:pointer;
cursor:pointer;
transition:background0.2sease,color0.2sease;
transition:background0.2sease,color0.2sease;
}
}
/* Divider between the two segments. */
.theme-button+.theme-button{
border-left:2pxsolidvar(--button-bg);
}
.theme-button[aria-pressed="true"]{
.theme-button[aria-pressed="true"]{
background:var(--button-active-bg);
background:var(--button-active-bg);
color:var(--button-active-text);
color:var(--button-active-text);
border-color:var(--button-active-bg);
}
}
.stage{
.stage{
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.