Files

34 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

/**
* 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}`);