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


Présentation 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.

Installation 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

Config provient de trois endroits. Les sources ultérieures l'emportent :

  1. Valeurs par défaut globales dans _config.yml sous la clé fastcomments:.
  2. Contexte de la page, dérivé automatiquement pour les widgets à portée de page (voir ci‑dessous).
  3. Attributs du tag écrits directement sur le tag.

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

Attribute syntax

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 entre guillemets true/false deviennent des booléens, et les nombres deviennent des nombres.
  • Tout ce qui est non entre guillemets et autre est résolu comme une variable Liquid à partir du contexte de la page, par ex. url_id=page.slug. (Liquid n'expande pas {% raw %}\{{ ... }}{% endraw %} à l'intérieur des attributs d'un tag, utilisez donc la forme bare page.slug plutôt que "{% raw %}\{{ page.slug }}{% endraw %}".)

Les clés d'attribut et de configuration en snake_case sont automatiquement mappées aux clés camelCase attendues par FastComments (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground, etc.). Toute autre option provenant de la configuration du widget est transmise telle quelle de la même manière.

Page-derived values

Pour les widgets à portée de page (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat), ceux-ci sont remplis automatiquement à partir de la page courante sauf si vous les définissez vous‑même :

  • url_idpage.url (un identifiant stable indépendant du domaine visité)
  • urlsite.url + page.url (uniquement lorsque url est défini dans _config.yml)
  • page_titlepage.title

Les widgets à l'échelle du site (commentaires/discussions récents, pages les plus consultées, synthèse des avis, fil d'activité des utilisateurs, compte en masse) ne sont pas liés à une page et ne dérivent pas ces valeurs.

EU data residency

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

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

ou par tag : {% 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.