Fonction de commentaires pour un blog GitHub implémentée sans JS côté front-end
(github.com/nemorize)J’ai commencé ce projet avec pour objectif de créer un blog qui ne serve aucun code JS côté front-end.
Comme le blog utilisait déjà une fonctionnalité de commentaires basée sur giscus,
implémenter des commentaires sans JS constituait un obstacle majeur.
J’ai mis en place cette fonctionnalité de commentaires à l’aide de Cloudflare Workers et de GitHub Actions.
Le fonctionnement suit le flux ci-dessous.
- Un formulaire de commentaire hébergé sur Cloudflare Worker est affiché.
- L’utilisateur se connecte avec son compte GitHub via ce formulaire de commentaire, puis soumet son commentaire.
- Le Worker échappe le contenu du commentaire reçu, puis l’envoie à GitHub via l’API
workflow_dispatchde GitHub Actions. - GitHub Actions, à partir du contenu reçu, ajoute le code du commentaire dans le fichier HTML de l’article, puis commit ces modifications.
- Le résultat commité est répercuté en production via la procédure de déploiement de GitHub Pages Actions.
Le léger délai nécessaire pour que le changement soit pris en compte selon les étapes 3 à 5…
Je m’en suis simplement sorti en ajoutant un petit message d’information. Sur des plateformes de blog comme WordPress, des fonctions du type « commentaire publié après validation par l’administrateur » sont courantes ; j’ai donc fait comme si ce délai correspondait à une validation par l’admin. Tant que vous, qui lisez cet article, faites semblant de ne pas le savoir, tout ira bien.
Du point de vue de l’UX, c’est résolu, haha.
C’est une approche qui n’a vraiment de sens que dans le cas d’un petit blog personnel où l’on tient absolument, absolument à ne pas utiliser de JS ; regardez donc cela surtout comme une expérimentation amusante 😅
Vous pouvez le tester vous-même via le lien ci-dessous !
https://nemorize.me/blog/202507/blog-renewal
4 commentaires
Du génie, non..? mdr
Je me demande soudain si un LLM serait capable de faire ça aussi, haha
La solution au problème de latence est originale et amusante 👏
Une sorte de CMS headless ? C’est intéressant.