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


TagDescription
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 %}

{# Collab chat. Укажите его для элемента контента с CSS-селектором #}
<article id="post-body">
  <p>Highlight me to leave a comment.</p>
</article>
{% fastcomments_collab_chat target="#post-body" %}

{# Image chat. Укажите его для элемента изображения с 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 в теге переопределяет значение, полученное с страницы, которое в свою очередь переопределяет любой глобальный дефолт.

Синтаксис атрибутов

Атрибуты — пары key=value в snake_case:

{% raw %}{% fastcomments url_id="my-stable-id" readonly=true count=20 %}{% endraw %}
  • В кавычках значения ("..." или '...') — это буквальные строки.
  • Без кавычек true/false становятся булевыми значениями, а числа становятся числами.
  • Без кавычек всё остальное разрешается как переменная Liquid из контекста страницы, например url_id=page.slug. (Liquid не разворачивает {% raw %}\{{ ... }}{% endraw %} внутри атрибутов тега, поэтому используйте форму page.slug без кавычек, а не "{% raw %}\{{ page.slug }}{% endraw %}".)

Ключи атрибутов и конфигурации в snake_case автоматически мапятся в camelCase, которые ожидает FastComments (tenant_idtenantId, url_idurlId, page_titlepageTitle, has_dark_backgroundhasDarkBackground и т. д.). Любая другая опция из настроек виджета передаётся напрямую таким же образом.

Значения, получаемые со страницы

Для виджетов, привязанных к странице (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, или новые функции никогда не будут добавлены в лежащую в основе библиотеку без повышения версии этой библиотеки.


Нужна помощь?

Если вы столкнулись с какими-либо проблемами или у вас есть вопросы по библиотеке Jekyll, пожалуйста:

Участие

Вклады приветствуются! Пожалуйста, посетите репозиторий на GitHub для ознакомления с правилами участия.