Guide d'implémentation de Giscus
Introduction
Giscus est un système de commentaires gratuit, open-source et sans publicité, basé sur les Discussions GitHub. Il permet à vos visiteurs de laisser des commentaires sur vos pages MD, tout en vous garantissant une totale propriété de vos données.
Prérequis
- Un compte GitHub
- Un dépôt public sur GitHub (peut être dédié uniquement aux commentaires)
Étape 1 : Préparer le dépôt GitHub
1.1 Vérifier ou créer un dépôt public
- Si votre dépôt de code est privé, créez un nouveau dépôt public (ex:
mon-site-commentaires). - Si votre dépôt est déjà public, vous pouvez l'utiliser directement.
1.2 Activer les Discussions
- Allez dans l'onglet Settings de votre dépôt.
- Dans la section General, trouvez l'option Features.
- Cochez la case Discussions.
- Cliquez sur Set up discussions si nécessaire.
1.3 Installer l'application Giscus
- Rendez-vous sur la page de l'application : giscus app.
- Cliquez sur Install.
- Choisissez Only select repositories.
- Sélectionnez votre dépôt public.
- Confirmez l'installation.
Étape 2 : Générer le script d'intégration
2.1 Accéder au générateur
Rendez-vous sur giscus.app (pensez à passer en français en bas de page).
2.2 Remplir les paramètres
| Champ | Valeur recommandée |
|---|---|
| Repository | votre-identifiant/votre-depot (ex: john/commentaires) |
| Page ↔️ Discussion Mapping | Discussion title contains page pathname |
| Discussion Category | General ou Announcements |
| Features | Activer les réactions (emoji) |
| Theme | preferred_color_scheme (adaptatif) |
| Language | Français |
2.3 Copier le script
En bas de page, copiez le script <script> généré. Il contient des identifiants uniques comme data-repo-id et data-category-id qu'il ne faut jamais modifier.
Étape 3 : Intégration dans votre site
3.1 Structure du fichier de configuration (config.ini)
[comments] enabled = true # ou false pour désactiver globalement
{% if config.comments.enabled %}
<div class="giscus-comments" style="margin-top: 3rem; border-top: 1px solid #e5e7eb; padding-top: 2rem;">
<h3 style="font-size: 1.25rem; font-weight: 600; margin-bottom: 1.5rem;">💬 Commentaires</h3>
<script src="https://giscus.app/client.js"
data-repo="[TON-REPO]"
data-repo-id="[TON-REPO-ID]"
data-category="[TA-CATEGORIE]"
data-category-id="[TON-CATEGORY-ID]"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-theme="preferred_color_scheme"
data-lang="fr"
data-loading="lazy"
crossorigin="anonymous"
async>
</script>
</div>
{% endif %}
Sites utilisant Giscus comme système de commentaires
Voici une sélection de sites et projets qui utilisent Giscus, classés par catégorie.
Sites à fort trafic et documentations techniques
- docs.godotengine.org : La documentation officielle du moteur de jeu Godot, qui reçoit un trafic élevé.
- docs.comfy.org : La documentation de ComfyUI, célèbre interface pour Stable Diffusion.
- mc-stan.org : Site de la communauté Stan pour la modélisation statistique.
Blogs et sites personnels
- raymondcamden.com : Blog d'un développeur très actif et influent.
- yihui.org : Blog de Yihui Xie, créateur de nombreux packages R (comme knitr et bookdown).
- mfyz.com : Blog d'un développeur qui a publié un article expliquant son adoption de Giscus.
- andrewlock.net : Blog technique régulièrement cité comme utilisant Giscus.
Intégrations avec des générateurs de sites
- Material for MkDocs : La documentation officielle propose un guide d'intégration pour Giscus.
- Docusaurus : De nombreux sites utilisent Giscus ; l'équipe a personnalisé ses composants pour l'intégrer.
- VuePress : Un plugin officiel (
vuepress-plugin-giscus) a été développé, signe d'une intégration mature.
Autres usages notables
- hello-algo.com : Site compagnon d'un livre sur les algorithmes, utilisé par une communauté active.
- De nombreux projets open-source l'utilisent pour leurs pages de documentation.
Pourquoi ces sites ont choisi Giscus
"Une solution open-source qui utilise les Discussions GitHub, permettant de partager facilement des réflexions et d'interagir avec le contenu en utilisant votre compte GitHub."
Où observer le rendu en direct
Si tu veux voir le rendu exact, je te recommande de visiter :
- yihui.org pour un rendu sobre sur un blog personnel
- docs.godotengine.org pour un rendu sur une documentation technique à grande échelle
Sites utilisant Giscus comme système de commentaires
Voici une sélection de sites et projets qui utilisent Giscus, classés par catégorie.
Sites à fort trafic et documentations techniques
- docs.godotengine.org : La documentation officielle du moteur de jeu Godot.
- docs.comfy.org : La documentation de ComfyUI.
- mc-stan.org : Site de la communauté Stan pour la modélisation statistique.
Blogs et sites personnels
- raymondcamden.com : Blog d'un développeur très actif.
- yihui.org : Blog de Yihui Xie, créateur de knitr et bookdown.
- mfyz.com : Blog d'un développeur qui a adopté Giscus.
- andrewlock.net : Blog technique régulièrement cité.
Intégrations avec des générateurs de sites
- Material for MkDocs : Documentation officielle avec guide d'intégration.
- Docusaurus : Utilisé par de nombreux sites ; l'équipe a personnalisé ses composants.
- VuePress : Un plugin officiel existe (
vuepress-plugin-giscus).
Autres usages notables
- hello-algo.com : Site compagnon d'un livre sur les algorithmes.
- De nombreux projets open-source utilisent Giscus pour leur documentation.
Pourquoi ces sites ont choisi Giscus
"Une solution open-source qui utilise les Discussions GitHub, permettant de partager facilement des réflexions et d'interagir avec le contenu en utilisant votre compte GitHub."
Où observer le rendu en direct
Je recommande de visiter :
- yihui.org pour un rendu sobre sur un blog personnel
- docs.godotengine.org pour un rendu sur une documentation technique à grande échelle
Où tester Giscus en vrai ?
Pour voir le système en action et même laisser un commentaire test, voici une sélection de sites qui utilisent Giscus.
Sites avec commentaires actifs
Voici quelques sites où tu peux voir Giscus en fonctionnement :
- laymonage.com : Le site du créateur de Giscus lui-même. C'est probablement l'exemple le plus abouti [citation:13].
- andrewlock.net : Blog technique d'un développeur, avec une intégration propre de Giscus [citation:11].
- dou-meishi.github.io : Blog d'un développeur qui a documenté son intégration de Giscus [citation:10].
- zackproser.com : Blog Next.js avec Giscus installé, fonctionne en mode clair et sombre [citation:11].
Comment tester ?
- Ouvre l'un de ces sites dans ton navigateur.
- Scrolle jusqu'en bas d'un article de blog.
- Connecte-toi avec ton compte GitHub (le bouton apparaît automatiquement).
- Laisse un commentaire test pour voir le rendu en direct.
Exemples d'intégration par framework
Si tu veux voir comment Giscus s'intègre techniquement :
- Material for MkDocs : Documentation officielle avec guide d'intégration [citation:1]
- VuePress : Plugin officiel
vuepress-plugin-giscusavec démo [citation:3] - Next.js : Tutoriel complet avec composant React [citation:14]
- Jekyll : Guide pas à pas pour Academic Pages [citation:4]
Ce que tu verras
Une fois connecté, tu pourras :
- Laisser un commentaire en Markdown
- Réagir avec des émojis
- Voir les commentaires existants
- Tester le mode clair/sombre (si le site le supporte)
Les commentaires que tu laisses apparaîtront dans les Discussions GitHub du site [citation:9].
Où tester Giscus en vrai ?
Voici des sites où tu peux voir Giscus en fonctionnement et laisser un commentaire test.
Sites avec Giscus actif
- laymonage.com - Site du créateur de Giscus. Référence absolue.
- andrewlock.net - Blog technique avec intégration propre.
- dou-meishi.github.io - Blog d'un développeur.
- zackproser.com - Blog Next.js avec Giscus.
Comment tester ?
- Ouvre l'un de ces sites.
- Scrolle en bas d'un article.
- Clique sur "Sign in with GitHub".
- Laisse un commentaire test.
Exemples par framework
- Material for MkDocs - guide Giscus
- VuePress - plugin Giscus
- Next.js - tutoriel Giscus
- Jekyll - guide Giscus
Ce que tu verras
- Commentaires en Markdown
- Réactions émoji
- Adaptation clair/sombre
- Synchronisation avec GitHub Discussions|
Sites avec Giscus actif (liens vérifiés)
Voici des sites où tu peux voir Giscus en fonctionnement et tester les commentaires.
Sites confirmés avec Giscus
- laymonage.com - Site du créateur de Giscus. Référence absolue. [citation:1][citation:9][citation:11]
- andrewlock.net - Blog technique avec intégration Giscus documentée. [citation:2][citation:7][citation:10]
- yihui.org - Blog de Yihui Xie, créateur de knitr et bookdown. [citation:2]
- raymondcamden.com - Blog d'un développeur influent. [citation:2]
- mc-stan.org - Site de la communauté Stan. [citation:2]
Sites avec démonstration technique
- dou-meishi.github.io - Blog avec un article détaillant l'intégration de Giscus. [citation:3]
- zackproser.com - Blog Next.js avec Giscus installé. [citation:4]
Comment tester
- Ouvre l'un de ces sites.
- Scrolle en bas d'un article.
- Connecte-toi avec ton compte GitHub.
- Laisse un commentaire test.
Pages de démonstration officielles
- laymonage.com/posts/giscus - Démo officielle du créateur. [citation:9]
- deploy-preview-448--anatole-demo.netlify.app - Démo du thème Anatole avec Giscus. [citation:5]
Ce que tu verras
- Commentaires en Markdown
- Réactions émoji
- Adaptation clair/sombre
- Synchronisation avec GitHub Discussions
Comment concilier pages en cache et commentaires Giscus
Le cache n'est pas un problème
Le cache (navigateur ou générateur statique) n'affecte pas Giscus car le système s'exécute côté client, dans le navigateur de l'utilisateur.
Giscus va chercher les commentaires en direct au chargement de la page.
Le vrai sujet : l'identification des pages
Giscus doit associer chaque page de ton site à une Discussion GitHub unique.
Pour cela, il utilise un "mappage" (mapping) basé sur un identifiant.
Solution 1 : Mapper par chemin (recommandé)
Giscus utilise le chemin de la page comme identifiant.
Exemple :
- Page :
https://tonsite.com/cache/article-1 - Discussion associée :
cache/article-1
Code à insérer dans le template :
<script src="https://giscus.app/client.js"
data-repo="[TON-REPO]"
data-repo-id="[TON-REPO-ID]"
data-category="[TA-CATEGORIE]"
data-category-id="[TON-CATEGORY-ID]"
data-mapping="pathname"
data-strict="0"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-theme="preferred_color_scheme"
data-lang="fr"
data-loading="lazy"
crossorigin="anonymous"
async>
</script>
---