A simple and lightweight client-side preview of your carbon footprint on a given website during a visit, powered by DK.
npm install @d-k/dk-badgebash
git clone https://github.com/dk-sustainability/dk-badge.git
`
OU
Téléchargez le zip du répertoire.
#### Installation
Récupérez le fichier script /dist/js/dk-badge.min.js ou /dist/js/dk-badge.js.
Récupérez le fichier qui correspond au style que vous souhaitez (full, compact ou footer) /dist/css/dk-badge-[STYLE].css (ou /dist/css/dk-badge-all.css qui les contient tous - non recommandé)
Dans votre html, ajoutez :
`html
`
Diverses options sont à votre disposition pour configurer le module, voir les options
$3
Ce répertoire n'est pas encore conçu pour être importable directement dans un bundle js, vous pouvez cependant adapter les étapes présentées dans Local manuel ci-dessus pour télécharger les fichiers via npm.
`bash
npm i @d-k/dk-badge
`
Les fichiers css et js à intégrer seront disponibles dans le répertoire node_modules/@d-k/dk-badge/dist/. Les étapes d'installation sont les mêmes que Local manuel.
$3
Tous les fichiers sont accessibles à l'aide du CDN unpkg, vous pouvez simplement ajouter les éléments ci-dessous dans votre html :
`html
`
Diverses options sont à votre disposition pour configurer le module, voir les options
Options
$3
Les options sont ajoutées au moment de l'instanciation, voici un exemple avec toutes les options renseignées :
`js
const dkBadge = new DKBadge({
// Les labels sont par défaut en anglais
labels: {
"intro": "Votre navigation sur ce site a émis environ ",
"details": "Détails",
"weight": "Poids",
"time": "Tps. passé",
"device": "Format",
"unknown": "inconnu",
"CO2unit": "g CO2e",
"weightUnit": "Ko",
"timeUnit": "sec.",
"privacy": "aucune donnée n'est collectée",
"emitted": "émis",
"close": "Ne plus afficher le badge"
},
// LE PUE moyen de vos serveurs si vous le connaissez
// et que les ressources proviennent en grande majorité du même endroit.
pue: 1.69,
// Si vous avez des statistiques de localisation d'audience
// Toutes les valeurs sont obligatoires
audienceLocationProportion: {
"france": 0.5,
"europe": 0.5,
"international": 0
},
// Si vous connaissez la localisation de vos serveurs
// Toutes les valeurs sont obligatoires
serverLocationProportion: {
"france": 0.5,
"international": 0.5
},
// Style du badge ("compact", "full" ou "footer")
style: "full"
// Si vous souhaitez utiliser le résultat du calcul uniquement
// Attention, une attribution avec lien vers cette page reste obligatoire.
renderUI: true,
// Permet d'afficher un bouton de fermeture
// Le badge sera supprimé de la page et le process de calcul arrêté
// Le choix de l'utilisateur est sauvegardé en localStorage
// Si vous souhaitez permettre à l'utilisateur de relancer le badge,
// vous pouvez supprimer l'entrée "dk-badge" du local storage
// et recharger la page (voir l'exemple sur la page demo/index.html)
removable: true
});
`
$3
Exemple pour une interface ayant un thème sombre :
` html
`
Définissez --dkb-root-font-size à 1.6rem si votre html/root font-size correspond à 10px.
Méthodes
Deux méthodes sont utilisables :
- .init() – lancement du module, à lancer après le chargement du DOM et du js
- .calculate(3000, 20, "Mobile") – pour effectuer un test de calcul indépendant. Paramètres :
- {number} size - The weight of the page
- {number} time - The time spent on the page
- {('Desktop'|'Tablet'|'Mobile')} deviceType
Events
Trois évènements sont émis par le module sur le document :
- dkBadge:calculated lorsque qu'un nouveau calcul est terminé
- dkBadge:updated lorsque l'UI est mise à jour
- dkBadge:removed lorsque le badge est retiré de l'interface par l'utilisateur
$3
`js
document.addEventListener('dkBadge:calculated', (data) => {
// Log toutes les infos du module
console.log('dkBadge:calculated', data.detail);
// Log uniquement le total équivalent CO2e
console.log('dkBadge:calculated', data.detail.ges);
});
``