diff --git a/client/package.json b/client/package.json index 7117a1e..7d0a6f3 100644 --- a/client/package.json +++ b/client/package.json @@ -10,6 +10,7 @@ "test": "vitest run", "preview": "vite preview", "generate:flyer": "node ../scripts/generate-beta-flyer.mjs", + "generate:flyer:png": "node ../scripts/generate-beta-flyer.mjs --png", "generate:flyer:setup": "playwright install chromium" }, "dependencies": { diff --git a/docs/marketing/kapteins-daagbok-beta-flyer.png b/docs/marketing/kapteins-daagbok-beta-flyer.png new file mode 100644 index 0000000..8348ffe Binary files /dev/null and b/docs/marketing/kapteins-daagbok-beta-flyer.png differ diff --git a/scripts/generate-beta-flyer.mjs b/scripts/generate-beta-flyer.mjs index 3355f02..e3931e2 100644 --- a/scripts/generate-beta-flyer.mjs +++ b/scripts/generate-beta-flyer.mjs @@ -18,6 +18,7 @@ const assetsDir = resolve(marketingDir, 'assets') const htmlPath = resolve(marketingDir, 'beta-flyer.html') const qrPath = resolve(assetsDir, 'qr-kapteins-daagbok.eu.png') const pdfPath = resolve(marketingDir, 'kapteins-daagbok-beta-flyer.pdf') +const pngPath = resolve(marketingDir, 'kapteins-daagbok-beta-flyer.png') const appUrl = 'https://kapteins-daagbok.eu' const require = createRequire(resolve(clientDir, 'package.json')) @@ -91,5 +92,42 @@ async function renderPdf() { } } +async function renderPng() { + let playwright + try { + playwright = require('playwright') + } catch { + console.error('Fehlende Abhängigkeit: "npm install -D playwright" in client/ ausführen.') + process.exit(1) + } + + await ensurePlaywrightChromium(playwright) + + const browser = await playwright.chromium.launch({ headless: true }) + try { + const context = await browser.newContext({ + viewport: { width: 794, height: 1123 }, + deviceScaleFactor: 2 + }) + const page = await context.newPage() + await page.goto(pathToFileURL(htmlPath).href, { waitUntil: 'networkidle' }) + await page.screenshot({ + path: pngPath, + fullPage: true, + type: 'png' + }) + console.log('PNG written:', pngPath) + await context.close() + } finally { + await browser.close() + } +} + await ensureQrCode() -await renderPdf() +const outputMode = process.argv.includes('--png') ? 'png' : 'pdf' + +if (outputMode === 'png') { + await renderPng() +} else { + await renderPdf() +}