feat(front+back): pwa added, register parkour update with it, and jeux added in coming soon
Some checks failed
Deploy to Development / build-and-deploy (push) Failing after 20s

This commit is contained in:
EvanChal
2026-01-25 19:28:21 +01:00
parent 0020c13bfd
commit 5bbe05000e
27 changed files with 14084 additions and 222 deletions

View File

@@ -0,0 +1,79 @@
/**
* Script pour générer les icônes PWA à partir du logo
*
* Usage: node scripts/generate-icons.js
*
* Nécessite: npm install --save-dev sharp
*/
const fs = require('fs')
const path = require('path')
// Tailles d'icônes requises pour PWA
const iconSizes = [72, 96, 128, 144, 152, 192, 384, 512]
async function generateIcons() {
try {
// Vérifier si sharp est installé
let sharp
try {
sharp = require('sharp')
} catch (e) {
console.error('❌ Le package "sharp" n\'est pas installé.')
console.log('📦 Installez-le avec: npm install --save-dev sharp')
process.exit(1)
}
const logoPath = path.join(__dirname, '../public/logo_lediscord.png')
const publicDir = path.join(__dirname, '../public')
// Vérifier que le logo existe
if (!fs.existsSync(logoPath)) {
console.error(`❌ Logo introuvable: ${logoPath}`)
process.exit(1)
}
console.log('🎨 Génération des icônes PWA avec fond transparent...')
// Générer chaque taille d'icône
for (const size of iconSizes) {
const outputPath = path.join(publicDir, `icon-${size}x${size}.png`)
// Calculer le padding (10% de la taille) pour éviter que le logo touche les bords
const padding = Math.floor(size * 0.1)
const contentSize = size - (padding * 2)
await sharp(logoPath)
.resize(contentSize, contentSize, {
fit: 'contain',
background: { r: 0, g: 0, b: 0, alpha: 0 } // Fond transparent
})
.extend({
top: padding,
bottom: padding,
left: padding,
right: padding,
background: { r: 0, g: 0, b: 0, alpha: 0 } // Fond transparent
})
.resize(size, size, {
kernel: sharp.kernel.lanczos3 // Meilleure qualité de redimensionnement
})
.png({
quality: 100,
compressionLevel: 9
})
.toFile(outputPath)
console.log(`✅ Généré: icon-${size}x${size}.png`)
}
console.log('✨ Toutes les icônes ont été générées avec succès!')
console.log('💡 Les icônes utilisent un fond transparent avec un padding intelligent.')
} catch (error) {
console.error('❌ Erreur lors de la génération des icônes:', error)
process.exit(1)
}
}
generateIcons()