Files
2026-10-30 17:20:47 +01:00

16 lines
1.1 KiB
JavaScript

// Собирает демо-версию страницы (без сервера) для предпросмотра: dist/demo.html
import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
let s = readFileSync(new URL('../public/index.html', import.meta.url), 'utf8');
s = s.replace(/<!--FONTS-->[\s\S]*?<!--\/FONTS-->/,
'<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>' +
'<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@400..800&family=Unbounded:wght@500..900&display=swap">');
s = s.replace('<script>\n(() => {', '<script>window.BINGO_FORCE_DEMO = true;</script>\n<script>\n(() => {');
s = s.replace(/<!doctype html>\s*<html lang="ru">\s*<head>\s*/i, '')
.replace(/<meta charset="utf-8">\s*/, '')
.replace(/<meta name="viewport"[^>]*>\s*/, '')
.replace(/<\/head>\s*<body>\s*/, '\n')
.replace(/<\/body>\s*<\/html>\s*$/, '\n');
mkdirSync(new URL('../dist/', import.meta.url), { recursive: true });
writeFileSync(new URL('../dist/demo.html', import.meta.url), s);
console.log('dist/demo.html', s.length, 'bytes');