
Язык 🇺🇦 Русский (Украина)
Документация
Начало работы
Конфигурация
Добавление комментариев на ваш сайт 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
Затем добавьте тег туда, где вы хотите разместить виджет — в layout, в посте или на странице:
{% raw %}{% fastcomments %}{% endraw %}
Готово. Замените demo на ваш FastComments tenant id (найдите его в Settings > API/SSO).
Теги 
| Тег | Описание |
|---|---|
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 | Лента активности пользователя |
Examples
{% 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 %}
{# Лента активности пользователя. Требуется user id #}
{% 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
Виджеты уровня сайта (recent comments/discussions, top pages, reviews summary, user activity feed, bulk count) не привязаны к странице и не получают эти значения.
Локация хранения данных в ЕС
Клиенты из ЕС добавляют region: eu, либо глобально:
fastcomments:
tenant_id: your-tenant-id
region: eu
или для каждого тега: {% raw %}{% fastcomments region="eu" %}{% endraw %}. Виджеты тогда загружаются с CDN ЕС.
Статус обслуживания 
Эти компоненты — обёртки вокруг наших базовых компонентов VanillaJS. Мы можем автоматически обновлять эти компоненты (исправлять ошибки, добавлять возможности) без публикации этой библиотеки, поэтому то, что она какое‑то время может не выходить в релиз, не означает, что над FastComments не ведётся активная разработка! За обновлениями заглядывайте в наш блог. Изменения API, нарушающие обратную совместимость, или новые функции никогда не будут добавлены в основную (core) библиотеку без повышения версии этой библиотеки.
Нужна помощь?
Если у вас возникнут какие-либо проблемы или вопросы по библиотеке Jekyll, пожалуйста:
Участие
Вклады приветствуются! Пожалуйста, посетите репозиторий на GitHub для получения руководства по внесению вклада.