
Язык 🇷🇺 Русский
Документация
Начало работы
Конфигурация
Добавьте комментарии на свой сайт Jekyll
Это официальная библиотека Jekyll для FastComments.
Встраивайте виджеты живых комментариев, чата и отзывов в ваш сайт на Jekyll.
Репозиторий
Живая демонстрация 
Попробуйте каждый виджет вживую на https://fastcomments.com/commenting-system-for-jekyll.
Живой пример 
Чтобы увидеть каждый тег, работающий локально против публичного тенанта demo, клонируйте репозиторий и выполните:
cd example
bundle install
bundle exec jekyll serve
У каждого виджета есть своя страница в каталоге example/, которую вы можете скопировать прямо в свой собственный сайт Jekyll.
Быстрый старт 
Задайте ваш tenant id один раз в _config.yml:
fastcomments:
tenant_id: demo
Затем добавьте тег в том месте, где вы хотите разместить виджет — в шаблоне, в посте или на странице:
{% raw %}{% fastcomments %}{% endraw %}
Готово. Замените demo на ваш tenant id FastComments (найти его можно в Настройки > API/SSO).
Теги 
| Tag | Description |
|---|---|
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 %}
Конфигурация 
Конфигурация поступает из трёх источников. Поздние источники имеют приоритет:
- Глобальные значения по умолчанию в
_config.ymlпод ключомfastcomments:. - Контекст страницы, определяется автоматически для виджетов, привязанных к странице (см. ниже).
- Атрибуты тега, записанные непосредственно в теге.
Таким образом, 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_id → tenantId, url_id → urlId, page_title → pageTitle,
has_dark_background → hasDarkBackground и т. д.). Любая другая опция из настроек виджета
передаётся напрямую таким же образом.
Значения, получаемые со страницы
Для виджетов, привязанных к странице (fastcomments, fastcomments_comment_count, fastcomments_live_chat,
fastcomments_collab_chat, fastcomments_image_chat) эти значения заполняются автоматически из
текущей страницы, если вы не задали их сами:
url_id←page.url(стабильный идентификатор, независимый от домена посетителя)url←site.url+page.url(только когдаurlзадан в_config.yml)page_title←page.title
Виджеты на уровне сайта (последние комментарии/дискуссии, топ-страницы, сводка отзывов, лента активности пользователей, массовый подсчёт) не привязаны к странице и не получают эти значения автоматически.
Географическое хранение данных (EU data residency)
Клиенты из ЕС добавляют region: eu, либо глобально:
fastcomments:
tenant_id: your-tenant-id
region: eu
либо для конкретного тега: {% raw %}{% fastcomments region="eu" %}{% endraw %}. В этом случае виджеты загружаются с CDN в ЕС.
Статус обслуживания 
Эти компоненты являются обёртками вокруг наших основных компонентов VanillaJS. Мы можем автоматически обновлять эти компоненты (исправлять ошибки, добавлять функции) без публикации этой библиотеки, поэтому даже если она некоторое время не публиковалась, это не означает, что FastComments не находится в активной разработке! Следите за обновлениями в нашем блоге. Изменения, ломающие API, или новые функции никогда не будут добавлены в лежащую в основе библиотеку без повышения версии этой библиотеки.
Нужна помощь?
Если вы столкнулись с какими-либо проблемами или у вас есть вопросы по библиотеке Jekyll, пожалуйста:
Участие
Вклады приветствуются! Пожалуйста, посетите репозиторий на GitHub для ознакомления с правилами участия.