/** * Copie les polices Archivo et Inter depuis node_modules vers static/polices/. * * Le self-hébergement n'est pas une préférence : la politique de sécurité de * contenu déclarée dans svelte.config.js interdit toute requête vers un hôte * tiers, Google Fonts compris. */ import { copyFileSync, mkdirSync, readdirSync } from 'node:fs'; import { join } from 'node:path'; const DESTINATION = 'static/polices'; mkdirSync(DESTINATION, { recursive: true }); const familles = [ { paquet: '@fontsource/archivo', graisses: ['400', '600', '700', '900'] }, { paquet: '@fontsource/inter', graisses: ['400', '500', '600', '700'] } ]; let copiees = 0; for (const { paquet, graisses } of familles) { const source = join('node_modules', paquet, 'files'); for (const fichier of readdirSync(source)) { const estLatin = fichier.includes('-latin-') && fichier.endsWith('.woff2'); const estNormal = fichier.includes('-normal.woff2'); const graisseVoulue = graisses.some((g) => fichier.includes(`-${g}-`)); if (estLatin && estNormal && graisseVoulue) { copyFileSync(join(source, fichier), join(DESTINATION, fichier)); copiees += 1; } } } console.log(`${copiees} fichiers de police copiés dans ${DESTINATION}`);