FastComments.com

Dodaj komentarze do swojej witryny Jekyll


To jest oficjalna biblioteka Jekyll dla FastComments.

Osadź na swojej stronie Jekyll widgety do komentarzy na żywo, czatu i recenzji.

Repozytorium

Zobacz na GitHub


Prezentacja na żywo Internal Link


Aby zobaczyć wszystkie tagi uruchomione lokalnie względem publicznego tenanta demo, sklonuj repozytorium i uruchom:

cd example
bundle install
bundle exec jekyll serve

Każdy widget ma własną stronę w katalogu example/, którą możesz skopiować bezpośrednio do własnej witryny Jekyll.

Instalacja Internal Link


Gem

Dodaj gem do grupy :jekyll_plugins w pliku Gemfile swojej witryny:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Następnie:

bundle install

(Kompatybilny z Jekyll 3.7+ i 4.x.)

Tagi Internal Link

TagOpis
fastcommentsDyskusje na żywo z odpowiedziami, głosowaniem, moderacją i aktualizacjami w czasie rzeczywistym
fastcomments_comment_countLiczba komentarzy dla bieżącej strony
fastcomments_comment_count_bulkLiczby komentarzy dla wielu stron na jednej stronie listy/indeksu
fastcomments_live_chatWidżet czatu strumieniowego w czasie rzeczywistym
fastcomments_collab_chatWspółpraca przy komentarzach inline (adnotacje tekstowe)
fastcomments_image_chatKomentarze z adnotacjami obrazów
fastcomments_recent_commentsNajnowsze komentarze w całej witrynie
fastcomments_recent_discussionsNiedawno aktywne wątki dyskusji
fastcomments_reviews_summaryPodsumowanie recenzji (oceny w gwiazdkach)
fastcomments_top_pagesNajczęściej dyskutowane strony
fastcomments_user_activity_feedKanał aktywności dla użytkownika

Przykłady

{% raw %}{# Liczba komentarzy. Widżet renderuje własną etykietę, np. "0 komentarzy" #}
{% fastcomments_comment_count %}

{# Czat na żywo #}
{% fastcomments_live_chat %}

{# Collab chat. Wskaż go na element treści za pomocą selektora CSS #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Image chat. Wskaż go na element obrazu za pomocą selektora CSS #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Podsumowanie recenzji #}
{% fastcomments_reviews_summary %}

{# Kanał aktywności użytkownika. Wymaga identyfikatora użytkownika #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Zbiorcze liczby komentarzy dla indeksu bloga #}
{% 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 %}

Konfiguracja Internal Link


Konfiguracja pochodzi z trzech miejsc. Późniejsze źródła mają pierwszeństwo:

  1. Domyślne ustawienia globalne w _config.yml pod kluczem fastcomments:.
  2. Kontekst strony, wyprowadzany automatycznie dla widgetów związanych ze stroną (patrz niżej).
  3. Atrybuty tagu zapisane bezpośrednio w samym tagu.

Tak więc url_id na tagu nadpisuje wartość wyprowadzoną ze strony, która z kolei nadpisuje dowolne ustawienie globalne.

Składnia atrybutów

Atrybuty to pary key=value w snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Cytowane wartości ("..." lub '...') są dosłownymi ciągami znaków.
  • Niecytowane true/false stają się wartościami logicznymi (boolean), a liczby stają się liczbami.
  • Niecytowane wszystko inne jest rozwiązywane jako zmienna Liquid z kontekstu strony, np. url_id=page.slug. (Liquid nie rozwija {% raw %}\{{ ... }}{% endraw %} wewnątrz atrybutów tagu, więc użyj formy page.slug zamiast "{% raw %}\{{ page.slug }}{% endraw %}".)

Klucze atrybutów i konfiguracji w snake_case są automatycznie mapowane na klucze w camelCase, których oczekuje FastComments (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground i tak dalej). Każda inna opcja z konfiguracji widgetu przechodzi w ten sam sposób.

Wartości pochodzące ze strony

Dla widgetów związanych ze stroną (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat) są one wypełniane automatycznie z bieżącej strony, chyba że ustawisz je samodzielnie:

  • url_idpage.url (stabilny identyfikator niezależny od odwiedzającej domeny)
  • urlsite.url + page.url (tylko gdy url jest ustawiony w _config.yml)
  • page_titlepage.title

Widgety ogólnostronne (najnowsze komentarze/dyskusje, najważniejsze strony, podsumowanie recenzji, kanał aktywności użytkowników, zbiorcze liczniki) nie są powiązane ze stroną i nie pozyskują tych wartości.

Lokalizacja danych w UE

Klienci z UE dodają region: eu, albo globalnie:

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

lub dla poszczególnego tagu: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Widgety będą wtedy ładowane z europejskiego CDN.



Status utrzymania Internal Link

Te komponenty są nakładkami na nasze podstawowe komponenty VanillaJS. Możemy automatycznie aktualizować te komponenty (naprawiać błędy, dodawać funkcje) bez publikowania tej biblioteki, więc chociaż może nie być opublikowana przez jakiś czas, nie oznacza to, że FastComments nie jest aktywnie rozwijany! Zachęcamy do sprawdzenia naszego bloga w poszukiwaniu aktualizacji. Zmiany łamiące API lub nowe funkcje nigdy nie zostaną wprowadzone do bazowej biblioteki bez zmiany wersji tej biblioteki.

Potrzebujesz pomocy?

Jeśli napotkasz problemy lub masz pytania dotyczące biblioteki Jekyll, prosimy:

Współtworzenie

Wkłady są mile widziane! Odwiedź repozytorium na GitHub po wytyczne dotyczące współpracy.