FastComments.com

Aggiungi commenti al tuo sito Jekyll


Questa è la libreria ufficiale Jekyll per FastComments.

Incorpora widget di commenti in tempo reale, chat e recensioni nel tuo sito Jekyll.

Repository

Visualizza su GitHub


Vetrina live Internal Link

Per visualizzare ogni tag in esecuzione localmente contro il tenant pubblico demo, clona il repository ed esegui:

cd example
bundle install
bundle exec jekyll serve

Ogni widget ha la propria pagina sotto example/ che puoi copiare direttamente nel tuo sito Jekyll.

Installazione Internal Link

Gem

Aggiungi la gem al gruppo :jekyll_plugins nel Gemfile del tuo sito:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Poi:

bundle install

(Compatibile con Jekyll 3.7+ e 4.x.)

Tag Internal Link

TagDescrizione
fastcommentsCommenti in tempo reale con risposte, votazioni, moderazione e aggiornamenti in tempo reale
fastcomments_comment_countNumero di commenti per la pagina corrente
fastcomments_comment_count_bulkConteggi dei commenti per molte pagine su una pagina elenco/indice
fastcomments_live_chatWidget chat in tempo reale
fastcomments_collab_chatCommenti collaborativi inline (annotazioni testuali)
fastcomments_image_chatCommenti con annotazioni su immagini
fastcomments_recent_commentsCommenti recenti in tutto il sito
fastcomments_recent_discussionsDiscussioni recentemente attive
fastcomments_reviews_summaryRiepilogo delle recensioni con valutazione a stelle
fastcomments_top_pagesPagine più discusse
fastcomments_user_activity_feedFeed attività per utente

Esempi

{% raw %}{# Conteggio dei commenti. Il widget mostra la propria etichetta, es. "0 commenti" #}
{% fastcomments_comment_count %}

{# Chat in tempo reale #}
{% fastcomments_live_chat %}

{# Chat collaborativa. Puntala verso un elemento di contenuto con un selettore CSS #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Chat per immagini. Puntala su un elemento immagine con un selettore CSS #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Riepilogo delle recensioni #}
{% fastcomments_reviews_summary %}

{# Feed attività utente. Richiede un ID utente #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Conteggi dei commenti in blocco per un indice del 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 %}

Configurazione Internal Link

La configurazione proviene da tre posti. Le fonti successive hanno la precedenza:

  1. Predefiniti globali in _config.yml sotto la chiave fastcomments:.
  2. Contesto della pagina, derivato automaticamente per i widget a livello di pagina (vedi sotto).
  3. Attributi del tag scritti sul tag stesso.

Quindi un url_id sul tag sovrascrive il valore derivato dalla pagina, che sovrascrive qualsiasi predefinito globale.

Sintassi degli attributi

Gli attributi sono coppie key=value in snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • I valori tra virgolette ("..." o '...') sono stringhe letterali.
  • Non tra virgolette true/false diventano booleani, e i numeri diventano numeri.
  • Non tra virgolette qualsiasi altra cosa viene risolta come una variabile Liquid dal contesto della pagina, e.g. url_id=page.slug. (Liquid non espande {% raw %}\{{ ... }}{% endraw %} all'interno degli attributi di un tag, quindi usa la forma semplice page.slug invece di "{% raw %}\{{ page.slug }}{% endraw %}".)

Le chiavi degli attributi e della configurazione in snake_case vengono mappate automaticamente sulle chiavi camelCase che FastComments si aspetta (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground, e così via). Qualsiasi altra opzione dalla widget configuration passa direttamente nello stesso modo.

Valori derivati dalla pagina

Per i widget con ambito pagina (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) questi vengono compilati automaticamente dalla pagina corrente a meno che non li imposti tu stesso:

  • url_idpage.url (un identificatore stabile indipendente dal dominio visitato)
  • urlsite.url + page.url (solo quando url è impostato in _config.yml)
  • page_titlepage.title

I widget a livello di sito (recent comments/discussions, top pages, reviews summary, user activity feed, bulk count) non sono legati a una pagina e non derivano questi valori.

Residenza dei dati nell'UE

I clienti dell'UE aggiungono region: eu, o globalmente:

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

o per tag: {% raw %}{% fastcomments region="eu" %}{% endraw %}. I widget verranno quindi caricati dalla CDN UE.



Stato di manutenzione Internal Link

Questi componenti sono dei wrapper attorno ai nostri componenti core VanillaJS. Possiamo aggiornare automaticamente quei componenti (correggere bug, aggiungere funzionalità) senza pubblicare questa libreria, quindi anche se potrebbe non essere pubblicata per un po' ciò non significa che FastComments non sia in sviluppo attivo! Sentiti libero di consultare il nostro blog per gli aggiornamenti. Le modifiche o le funzionalità che interrompono l'API non verranno mai distribuite nella libreria core sottostante senza un aumento di versione in questa libreria.

Hai bisogno di aiuto?

Se riscontri problemi o hai domande sulla libreria Jekyll, per favore:

Contribuire

I contributi sono benvenuti! Visita il repository GitHub per le linee guida per i contributi.