FastComments.com

Ajouter des commentaires à votre site Jekyll

Ceci est la bibliothèque officielle Jekyll pour FastComments.

Intégrez des widgets de commentaires en direct, de chat et d'avis dans votre site Jekyll.

Dépôt

Voir sur GitHub

Agents de codage IA Internal Link

skills.sh

Donnez à votre agent de codage le contexte FastComments dont il a besoin - widgets, configuration, SSO sécurisé, l'API REST et les SDK :

npx skills add fastcomments/skills

Fonctionne avec Claude Code, Codex, Cursor, Copilot, Gemini et tout autre agent pris en charge par le skills CLI.

Vitrine en direct Internal Link

Pour voir chaque tag s'exécuter localement contre le locataire public demo, clonez le dépôt et exécutez :

cd example
bundle install
bundle exec jekyll serve

Chaque widget possède sa propre page sous example/ que vous pouvez copier directement dans votre propre site Jekyll.

Installer Internal Link

Gem

Ajoutez la gem au groupe :jekyll_plugins dans le Gemfile de votre site :

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Ensuite :

bundle install

(Compatible avec Jekyll 3.7+ et 4.x.)

Étiquettes Internal Link

TagDescription
fastcommentsCommentaires en direct avec réponses, votes, modération et mises à jour en temps réel
fastcomments_comment_countNombre de commentaires pour la page actuelle
fastcomments_comment_count_bulkNombre de commentaires pour plusieurs pages sur une liste/page d'index
fastcomments_live_chatWidget de chat en streaming en temps réel
fastcomments_collab_chatCommentaires collaboratifs en ligne (annotations de texte)
fastcomments_image_chatCommentaires d'annotation d'image
fastcomments_recent_commentsCommentaires récents sur tout le site
fastcomments_recent_discussionsFils de discussion récemment actifs
fastcomments_reviews_summaryRésumé des avis par étoiles
fastcomments_top_pagesPages les plus discutées
fastcomments_user_activity_feedFlux d'activité par utilisateur

Exemples

{% raw %}{# Nombre de commentaires. Le widget affiche son propre libellé, par exemple "0 commentaires" #}
{% fastcomments_comment_count %}

{# Chat en direct #}
{% fastcomments_live_chat %}

{# Chat collaboratif. Pointez-le vers un élément de contenu avec un sélecteur CSS #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Chat d'image. Pointez-le vers un élément image avec un sélecteur CSS #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Résumé des avis #}
{% fastcomments_reviews_summary %}

{# Flux d'activité utilisateur. Nécessite un identifiant utilisateur #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Comptages en masse des commentaires pour un index de blog #}
{% for post in site.posts %}
  <a href="\{{ post.url }}">\{{ post.title }}</a>
  <span class="fast-comments-count" data-fast-comments-url-id="\{{ post.url }}"></span>
{% endfor %}
{% fastcomments_comment_count_bulk %}{% endraw %}

Configuration Internal Link

La configuration provient de trois sources. Les sources ultérieures ont priorité :

  1. Valeurs par défaut globales dans _config.yml sous la clé fastcomments:.
  2. Contexte de la page, dérivé automatiquement pour les widgets liés à la page (voir ci-dessous).
  3. Attributs de balise écrits sur la balise elle-même.

Ainsi, un url_id sur la balise remplace la valeur dérivée de la page, qui remplace toute valeur par défaut globale.

Syntaxe des attributs

Les attributs sont des paires key=value en snake_case :

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Les valeurs entre guillemets ("..." ou '...') sont des chaînes littérales.
  • Les valeurs non quotées true/false deviennent des booléens, et les nombres deviennent des nombres.
  • Toute autre valeur non quotée est résolue comme une variable Liquid à partir du contexte de la page, par ex. url_id=page.slug. (Liquid n'interprète pas {% raw %}\{{ ... }}{% endraw %} dans les attributs d'une balise, utilisez donc la forme page.slug plutôt que "{% raw %}\{{ page.slug }}{% endraw %}".)

Les clés d'attributs et de configuration en snake_case sont automatiquement mappées aux clés camelCase attendues par FastComments (tenant_id → tenantId, url_id → urlId, page_title → pageTitle, has_dark_background → hasDarkBackground, etc.). Toute autre option de la configuration du widget passe directement de la même manière.

Valeurs dérivées de la page

Pour les widgets liés à la page (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat), ces valeurs sont remplies automatiquement à partir de la page courante, sauf si vous les définissez vous-même :

  • url_id ← page.url (un identifiant stable indépendant du domaine visité)
  • url ← site.url + page.url (uniquement si url est défini dans _config.yml)
  • page_title ← page.title

Les widgets à l'échelle du site (commentaires/discussions récents, pages populaires, résumé des avis, flux d'activité utilisateur, comptage en masse) ne sont pas liés à une page et ne dérivent pas ces valeurs.

Résidence des données dans l'UE

Les clients de l'UE ajoutent region: eu, soit globalement :

fastcomments:
  tenant_id: your-tenant-id
  region: eu

soit par balise : {% raw %}{% fastcomments region="eu" %}{% endraw %}. Les widgets se chargent alors depuis le CDN de l'UE.

Statut de maintenance Internal Link

Ces composants sont des enveloppes autour de nos composants VanillaJS principaux. Nous pouvons mettre à jour automatiquement ces composants (corriger des bogues, ajouter des fonctionnalités) sans publier cette bibliothèque ; ainsi, même si elle peut ne pas être publiée pendant un certain temps, cela ne signifie pas que FastComments n'est pas en développement actif ! N'hésitez pas à consulter notre blog pour les mises à jour. Les modifications incompatibles de l'API ou les nouvelles fonctionnalités ne seront jamais apportées à la bibliothèque core sous-jacente sans une augmentation de version dans cette bibliothèque.

Besoin d'aide ?

Si vous rencontrez des problèmes ou avez des questions concernant la bibliothèque Jekyll, veuillez :

Contribuer

Les contributions sont les bienvenues ! Veuillez consulter le dépôt GitHub pour les consignes de contribution.