FastComments.com

Voeg reacties toe aan je Jekyll-site

Dit is de officiële Jekyll-bibliotheek voor FastComments.

Integreer live-reacties, chat- en beoordelingswidgets in uw Jekyll-site.

Repository

Bekijk op GitHub


Live-presentatie Internal Link

Om elke tag lokaal te zien draaien tegen de publieke demo tenant, kloon de repo en voer uit:

cd example
bundle install
bundle exec jekyll serve

Elke widget heeft een eigen pagina onder example/ die je rechtstreeks in je eigen Jekyll-site kunt kopiëren.

Installatie Internal Link

Gem

Voeg de gem toe aan de :jekyll_plugins groep in het Gemfile van je site:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Dan:

bundle install

(Compatibel met Jekyll 3.7+ en 4.x.)

Tags Internal Link

TagBeschrijving
fastcommentsLive reacties met antwoorden, stemmen, moderatie en realtime-updates
fastcomments_comment_countAantal reacties voor de huidige pagina
fastcomments_comment_count_bulkReactieaantallen voor meerdere pagina's op een lijst-/indexpagina
fastcomments_live_chatRealtime streaming chatwidget
fastcomments_collab_chatSamenwerkende inline-opmerkingen (tekstannotaties)
fastcomments_image_chatReacties op afbeeldingsannotaties
fastcomments_recent_commentsRecente reacties op de site
fastcomments_recent_discussionsOnlangs actieve discussiedraden
fastcomments_reviews_summarySamenvatting van beoordelingen met sterren
fastcomments_top_pagesMeest besproken pagina's
fastcomments_user_activity_feedActiviteitenfeed per gebruiker

Voorbeelden

{% raw %}{# Aantal reacties. De widget rendert zijn eigen label, bijv. "0 reacties" #}
{% fastcomments_comment_count %}

{# Livechat #}
{% fastcomments_live_chat %}

{# Collab-chat. Wijs het toe aan een contentelement met een CSS-selector #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Image-chat. Wijs het toe aan een afbeeldingelement met een CSS-selector #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Samenvatting van beoordelingen #}
{% fastcomments_reviews_summary %}

{# Gebruikersactiviteitenfeed. Vereist een gebruikers-id #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Bulk-reactieaantallen voor een blogindex #}
{% 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 %}

Configuratie Internal Link

Configuratie komt van drie plaatsen. Latere bronnen hebben voorrang:

  1. Globale standaardwaarden in _config.yml onder de sleutel fastcomments:.
  2. Paginacontext, automatisch afgeleid voor paginagebonden widgets (zie hieronder).
  3. Tag-attributen geschreven op de tag zelf.

Dus een url_id op de tag overschrijft de paginageleide waarde, die een globale standaard overschrijft.

Attribuutsyntaxis

Attributen zijn key=value paren in snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Geciteerde waarden ("..." of '...') zijn letterlijke strings.
  • Niet-geciteerde true/false worden booleans, en nummers worden nummers.
  • Niet-geciteerde alles anders wordt opgelost als een Liquid-variabele uit de paginacontext, bijv. url_id=page.slug. (Liquid breidt geen {% raw %}\{{ ... }}{% endraw %} uit binnen de attributen van een tag, dus gebruik de kale page.slug-vorm in plaats van "{% raw %}\{{ page.slug }}{% endraw %}".)

Snake_case attribuut- en config-sleutels worden automatisch gemapt naar de camelCase-sleutels die FastComments verwacht (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground, enzovoort). Elke andere optie uit de widget configuration gaat op dezelfde manier rechtstreeks door.

Pagina-afgeleide waarden

Voor de paginagebonden widgets (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) worden deze automatisch ingevuld vanaf de huidige pagina tenzij je ze zelf instelt:

  • url_idpage.url (een stabiele identificator onafhankelijk van het bezochte domein)
  • urlsite.url + page.url (alleen wanneer url is ingesteld in _config.yml)
  • page_titlepage.title

Site-brede widgets (recente reacties/discussies, top pagina's, samenvatting van beoordelingen, gebruikersactiviteit-feed, bulk telling) zijn niet aan een pagina gebonden en leiden deze niet af.

EU-gegevensresidentie

EU-klanten voegen region: eu toe, hetzij globaal:

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

of per tag: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Widgets worden vervolgens geladen vanaf het EU CDN.



Onderhoudsstatus Internal Link

Deze componenten zijn wrappers rond onze kern VanillaJS-componenten. We kunnen die componenten automatisch bijwerken (bugs oplossen, functies toevoegen) zonder deze bibliotheek te publiceren, dus hoewel deze mogelijk een tijd niet gepubliceerd wordt, betekent dat niet dat FastComments niet actief in ontwikkeling is! Bekijk gerust onze blog voor updates. Incompatibele API-wijzigingen of nieuwe functies zullen nooit naar de onderliggende kernbibliotheek worden doorgevoerd zonder een versieverhoging in deze bibliotheek.


Hulp nodig?

Als u problemen ondervindt of vragen heeft over de Jekyll-bibliotheek, neem dan:

Bijdragen

Bijdragen zijn welkom! Bezoek de GitHub-repository voor richtlijnen voor bijdragen.