Dans cet article de blog, nous allons apprendre comment ajouter une détection de bloqueur de publicités à votre blog Hugo en utilisant le thème PaperMod. Nous inclurons également un simple message d’avertissement pour les utilisateurs qui ont un bloqueur de publicités activé, les encourageant à le désactiver ou à ajouter votre site à leur liste blanche.
Vue d’ensemble
Voici un aperçu rapide des étapes que nous allons suivre:
- Créer un fichier CSS personnalisé pour styliser le message d’avertissement.
- Créer un fichier JavaScript pour détecter les bloqueurs de publicités.
- Ajouter un fichier HTML partiel pour le message d’avertissement.
- Étendre les partiels head et footer pour inclure nos nouveaux fichiers.
Guide étape par étape
1. Créer un fichier CSS personnalisé
Créez un nouveau fichier nommé custom_css.css
sous le répertoire assets/css/extended/
et collez le code CSS suivant:
#adblock-warning {
background-color: #f2dede;
color: #a94442;
border-color: #ebccd1;
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
2. Créer un fichier JavaScript pour détecter les bloqueurs de publicités
Créez un nouveau fichier nommé adblock-detection.js
sous le répertoire static/js/
et collez le code JavaScript suivant:
function detectAdBlocker() {
const adBlockTest = document.createElement('div');
adBlockTest.innerHTML = ' ';
adBlockTest.className = 'ad ads adbadge doubleclick BannerAd adsbox ad-placeholder ad-placement';
document.body.appendChild(adBlockTest);
window.setTimeout(() => {
if (adBlockTest.offsetHeight === 0) {
document.getElementById('adblock-warning').style.display = 'block';
console.log('Ad-blocker detected.');
} else {
console.log('No ad-blocker detected.');
}
adBlockTest.remove();
}, 100);
}
window.addEventListener('load', detectAdBlocker);
3. Ajouter un fichier HTML partiel pour le message d’avertissement
Créez un nouveau fichier nommé adblock-warning.html
sous le répertoire layouts/partials/
et collez le code HTML suivant:
<div id="adblock-warning" style="display:none;">
<p>Please consider disabling your ad-blocker or whitelisting our website. Ads help support our content and keep it free for everyone. Thank you!</p>
</div>
4. Étendre les partiels head et footer pour inclure nos nouveaux fichiers
Modifiez le fichier layouts/partials/extend_head.html
et ajoutez la ligne suivante:
<link rel="stylesheet" href="{{ "css/extended/custom_css.css" | relURL }}">
Modifiez le fichier layouts/partials/extend_footer.html
et ajoutez la ligne suivante:
<script src="{{ "js/adblock-detection.js" | relURL }}" defer></script>
Conclusion
Avec les étapes ci-dessus terminées, vous avez réussi à ajouter une détection de bloqueur de publicités à votre blog Hugo en utilisant le thème PaperMod. Les visiteurs ayant un bloqueur de publicités activé verront maintenant un message d’avertissement poli les encourageant à le désactiver ou à ajouter votre site à leur liste blanche, contribuant ainsi à soutenir votre contenu et à le maintenir gratuit pour tout le monde.
Source code : https://github.com/hobbyworker/hugo-demo