Ajout d'un favicon dynamique personnalisé basé sur le nom de configuration
## Nouvelle fonctionnalité ### Favicon automatique avec initiales - Génération dynamique d'un favicon SVG avec les 2 premières lettres du nom - Route `/favicon.ico` qui utilise la variable `config.name` - Design moderne avec dégradé bleu et coins arrondis - Cache navigateur optimisé (24h) pour les performances ### Intégration dans l'interface - Ajout de la balise favicon dans autopost.html - Support SVG pour une qualité parfaite à toutes les tailles - Personnalisation automatique selon la configuration ## Avantages - Identité visuelle unique pour chaque instance - Aucune configuration manuelle nécessaire - Favicon professionnel généré automatiquement - Optimisation des performances avec mise en cache
This commit is contained in:
parent
a9e7024830
commit
8d55c06c2b
@ -280,6 +280,26 @@ autopostRouter.get('/logout', (req, res) => {
|
||||
req.session.destroy(() => res.redirect('/autopost/login'));
|
||||
});
|
||||
|
||||
// --------------------------- Favicon dynamique -----------------------------
|
||||
autopostRouter.get('/favicon.ico', (req, res) => {
|
||||
const initials = config.name.substring(0, 2).toUpperCase();
|
||||
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
||||
<defs>
|
||||
<linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style="stop-color:#3B82F6;stop-opacity:1" />
|
||||
<stop offset="100%" style="stop-color:#1D4ED8;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect width="32" height="32" rx="6" fill="url(#grad)"/>
|
||||
<text x="16" y="22" font-family="Arial, sans-serif" font-size="14" font-weight="bold"
|
||||
text-anchor="middle" fill="white">${initials}</text>
|
||||
</svg>`;
|
||||
|
||||
res.setHeader('Content-Type', 'image/svg+xml');
|
||||
res.setHeader('Cache-Control', 'public, max-age=86400'); // Cache 24h
|
||||
res.send(svg);
|
||||
});
|
||||
|
||||
function checkAuth(req, res, next) {
|
||||
if (req.session && req.session.authenticated) {
|
||||
next();
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<title>{{TITLE}}</title>
|
||||
<meta name="csrf-token" content="{{CSRF_TOKEN}}">
|
||||
<link rel="icon" href="/autopost/favicon.ico" type="image/svg+xml">
|
||||
<script src="js/index.global.js"></script>
|
||||
<script src="jquery/jquery.min.js"></script>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" rel="stylesheet">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user