FastComments.com

Додайте коментарі на свій сайт Jekyll


Це офіційна бібліотека Jekyll для FastComments.

Вбудуйте віджети живого коментування, чату та оглядів у свій сайт Jekyll.

Репозиторій

Переглянути на GitHub


Приклад у дії Internal Link


Щоб побачити всі теги, що працюють локально проти публічного орендаря demo, клонуйте репозиторій і виконайте:

cd example
bundle install
bundle exec jekyll serve

Кожен віджет має власну сторінку в каталозі example/, яку ви можете безпосередньо скопіювати у свій сайт Jekyll.

Встановлення Internal Link

Gem

Додайте gem до групи :jekyll_plugins у файлі Gemfile вашого сайту:

group :jekyll_plugins do
  gem "fastcomments-jekyll"
end

Потім:

bundle install

(Сумісно з Jekyll 3.7+ та 4.x.)

Теги Internal Link

ТегОпис
fastcommentsЖиві коментарі з відповідями, голосуванням, модеруванням та оновленнями в реальному часі
fastcomments_comment_countКількість коментарів для поточної сторінки
fastcomments_comment_count_bulkКількості коментарів для кількох сторінок на одній сторінці списку/індексу
fastcomments_live_chatПотоковий чат у реальному часі
fastcomments_collab_chatСпільне вбудоване коментування (текстові анотації)
fastcomments_image_chatКоментарі-анотації до зображень
fastcomments_recent_commentsОстанні коментарі по всьому сайту
fastcomments_recent_discussionsНещодавно активні теми обговорень
fastcomments_reviews_summaryПідсумок оглядів із зірковими рейтингами
fastcomments_top_pagesНайбільш обговорювані сторінки
fastcomments_user_activity_feedСтрічка активності користувача

Приклади

{% raw %}{# Кількість коментарів. Віджет відображає власну мітку, наприклад "0 коментарів" #}
{% fastcomments_comment_count %}

{# Чат у реальному часі #}
{% fastcomments_live_chat %}

{# Спільне вбудоване коментування. Вкажіть селектором CSS елемент вмісту #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Чат для зображень. Вкажіть його на елемент зображення за допомогою CSS-селектора #}
<img id="hero" src="/hero.jpg" alt="Hero image">
{% fastcomments_image_chat target="#hero" %}

{# Підсумок оглядів #}
{% fastcomments_reviews_summary %}

{# Стрічка активності користувача. Потребує ідентифікатора користувача #}
{% fastcomments_user_activity_feed user_id="demo:demo-user" %}

{# Масові підрахунки коментарів для індексу блогу #}
{% 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 %}

Налаштування Internal Link

Конфігурація надходить з трьох місць. Перевага належить пізнішим джерелам:

  1. Глобальні значення за замовчуванням у _config.yml під ключем fastcomments:.
  2. Контекст сторінки, який автоматично визначається для віджетів, прив'язаних до сторінки (див. нижче).
  3. Атрибути тега, вказані безпосередньо в самому тегі.

Отже, url_id, вказаний у тегі, перекриває значення, отримане зі сторінки, яке, у свою чергу, перекриває будь-яке глобальне значення за замовчуванням.

Attribute syntax

Атрибути — це пари key=value у snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • Quoted values ("..." or '...') are literal strings.
  • Unquoted true/false become booleans, and numbers become numbers.
  • Unquoted anything else is resolved as a Liquid variable from the page context, e.g. url_id=page.slug. (Liquid does not expand {% raw %}\{{ ... }}{% endraw %} inside a tag's attributes, so use the bare page.slug form rather than "{% raw %}\{{ page.slug }}{% endraw %}".)

Ключі атрибутів і конфігурації в snake_case автоматично відображаються на camelCase ключі, які очікує FastComments (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground тощо). Будь-яка інша опція з widget configuration проходить без змін тим самим чином.

Page-derived values

Для віджетів, прив'язаних до сторінки (fastcomments, fastcomments_comment_count, fastcomments_live_chat, fastcomments_collab_chat, fastcomments_image_chat), ці значення заповнюються автоматично зі поточної сторінки, якщо ви не встановите їх самі:

  • url_idpage.url (стабільний ідентифікатор, незалежний від домену відвідувача)
  • urlsite.url + page.url (лише коли url встановлено в _config.yml)
  • page_titlepage.title

Сайтові віджети (недавні коментарі/обговорення, топ-сторінки, зведення відгуків, стрічка активності користувачів, масові підрахунки) не прив'язані до сторінки і не заповнюють ці значення.

EU data residency

Клієнти з ЄС додають region: eu, або глобально:

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

або для окремого тега: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Віджети тоді завантажуються з CDN у ЄС.



Статус підтримки Internal Link

Ці компоненти є обгортками навколо наших основних компонентів VanillaJS. Ми можемо автоматично оновлювати ці компоненти (виправляти помилки, додавати функції) без публікації цієї бібліотеки, тож хоча вона може деякий час не бути опублікованою, це не означає, що FastComments не перебуває в активній розробці! Слідкуйте за оновленнями в нашому блозі. Несумісні зміни API або нові функції ніколи не будуть додані до базової core-бібліотеки без підвищення версії в цій бібліотеці.


Потрібна допомога?

Якщо ви зіткнулися з будь-якими проблемами або маєте питання щодо Jekyll Library, будь ласка:

Співпраця

Внески вітаються! Будь ласка, відвідайте репозиторій на GitHub для отримання інструкцій щодо внеску.