All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m35s
Android Chrome bevorzugt für den Home-Screen rasterbare PNG-Icons über reines SVG. 192×192 und 512×512 werden aus static/icon.svg per Sharp-Skript gerendert (npm run render:icons) und committet, damit CI keine zusätzliche Abhängigkeit hat. Manifest referenziert alle drei Icons mit purpose "any maskable" → rund-/squircle-sicher. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
770 B
JavaScript
20 lines
770 B
JavaScript
// Rendert PWA-Icons aus static/icon.svg in die Größen, die Android/iOS
|
|
// für Home-Screen-Icons bevorzugen. Einmal lokal ausführen und die
|
|
// PNGs committen — keine CI-Abhängigkeit.
|
|
import sharp from 'sharp';
|
|
import { readFile } from 'node:fs/promises';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { dirname, join } from 'node:path';
|
|
|
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
const root = join(here, '..');
|
|
const src = await readFile(join(root, 'static/icon.svg'));
|
|
|
|
for (const size of [192, 512]) {
|
|
await sharp(src, { density: 400 })
|
|
.resize(size, size, { fit: 'contain', background: { r: 248, g: 250, b: 248, alpha: 1 } })
|
|
.png()
|
|
.toFile(join(root, `static/icon-${size}.png`));
|
|
console.log(`wrote static/icon-${size}.png`);
|
|
}
|