// Baut aus src/alt-text-checker.js ein einzeiliges "javascript:"-Bookmarklet // und schreibt es nach dist/bookmarklet.txt sowie in INSTALLIEREN.html. const fs = require('fs'); const path = require('path'); const { minify } = require('terser'); const SRC = path.join(__dirname, 'src', 'alt-text-checker.js'); const DIST_DIR = path.join(__dirname, 'dist'); const HTML_FILE = path.join(__dirname, 'INSTALLIEREN.html'); async function build() { const source = fs.readFileSync(SRC, 'utf8'); const result = await minify(source, { compress: { unused: true, dead_code: true }, mangle: true }); if (result.error) throw result.error; const bookmarklet = 'javascript:' + encodeURIComponent(result.code); fs.mkdirSync(DIST_DIR, { recursive: true }); fs.writeFileSync(path.join(DIST_DIR, 'alt-text-checker.min.js'), result.code, 'utf8'); fs.writeFileSync(path.join(DIST_DIR, 'bookmarklet.txt'), bookmarklet, 'utf8'); console.log(`Minified: ${source.length} -> ${result.code.length} bytes`); console.log(`Bookmarklet: ${bookmarklet.length} bytes`); if (fs.existsSync(HTML_FILE)) { let html = fs.readFileSync(HTML_FILE, 'utf8'); const before = html; html = html.replace( /(]*href=")[^"]*(")/, `$1${bookmarklet.replace(/&/g, '&').replace(/"/g, '"')}$2` ); if (html !== before) { fs.writeFileSync(HTML_FILE, html, 'utf8'); console.log('INSTALLIEREN.html aktualisiert.'); } else { console.log('Hinweis: Platzhalter nicht gefunden, INSTALLIEREN.html nicht verändert.'); } } } build().catch((err) => { console.error(err); process.exit(1); });